BaseFruit
을 허용하는 생성자가있는 경우 int weight
이와 같은 일반적인 방법으로 과일 조각을 인스턴스화 할 수 있습니까?
public void AddFruit<T>()where T: BaseFruit{
BaseFruit fruit = new T(weight); /*new Apple(150);*/
fruit.Enlist(fruitManager);
}
주석 뒤에 예제가 추가됩니다. BaseFruit
매개 변수가없는 생성자를 제공 한 다음 멤버 변수를 통해 모든 것을 채우는 경우에만이 작업을 수행 할 수 있습니다 . 내 실제 코드 (과일에 관한 것이 아님)에서 이것은 오히려 비실용적입니다.
-Update-
그래서 어떤 식 으로든 제약으로 해결할 수없는 것 같습니다. 답변에서 세 가지 후보 솔루션이 있습니다.
- 공장 패턴
- 반사
- 활성제
나는 반사가 가장 깨끗하지 않다고 생각하는 경향이 있지만 다른 두 가지를 결정할 수는 없습니다.