이 경우에는 (추상적 인) Factory Pattern
의 사용이 권장되는지 물어보고 싶습니다. 나는 수퍼 클래스 인 BaseProduct
에서 파생 된 별도의 클래스로 표현되는 20 Products
입니다. Products
은 5 Categories
으로 나뉘며 각 클래스는 수퍼 클래스 BaseCategory
에서 파생 된 별도의 클래스로 표시됩니다. 각 Product
은 하나의 특정 Category
에 속합니다. Product
의 생성은 의미가 있고 기술적으로는 Category
에서만 수행되므로 의 인스턴스 생성 직전에 각각 Category
을 인스턴스화해야합니다. 그러나 Category
은 Product
없이 응용 프로그램에서 "단독으로"사용할 수 없습니다. 생성 될 Product
과 Category
의 선택은 String
을 검사하여 결정됩니다. 클라이언트에서 if-else
많은 코드를 방지하기 위해 나는 카테고리의 생성에 관한 Factory Pattern
를 사용하는 것을 선호 : 나는 각 Category
에서 Products
의 창조를 해결하는 방법팩토리 패턴을 두 단계로 적용하십시오.
class CategoryFactory{
static Category createCategory(String s){
if(s.equals("foo"))
return new Category1();
else if (s.equals("bar"))
return new Category2();
...
}
}
내 걱정입니다. Category
클래스의 생성자에 String
을 전달하고 카테고리 내에 비슷한 Factory
을 적용해야하나요? Products
에 Factory
을 사용해야하고 생성자의 매개 변수로 Category
을 제공해야하나요? 전체 문제에 대해 더 나은 접근법이 있습니까? 만든 Category
후 나는 Product
을 만들 수 없다는 것을 명심하십시오. 클라이언트에 Category
을 설치하면 동시에 Product
을 만들고 포함해야합니다.
각 제품 및 각 카테고리에 대한 다른 클래스가 올바른 선택입니까? 이 두 클래스의 코드를 추가하면 우리가 말하는 것에 대해 알 수 있습니다. –
사용자 인터페이스의 위젯이며 위젯 "카테고리"에는 위젯 "제품"이 포함되어 있습니다. 코드가 어떻게 보이는지는 내 질문과 관련이있는 디자인과는 관련이 없습니다. – arjacsoh
디자인에 대한 질문을 던졌습니다. 이것이 내가 일부 코드를 요청한 이유입니다. 귀하의 예제에서 귀하의 카테고리가 마커 클래스였던 것처럼 보였습니다. 즉, 빈 생성자를 보았고 두 카테고리 간의 기능적 차이점이 무엇인지 궁금합니다. 현재 디자인 그대로 신뢰한다고 말하면 괜찮습니다. –