我想询问在这种情况下是否推荐使用(摘要)Factory Pattern
:我有20 Products
所有这些都由一个单独的类表示,该类派生自超类{{ 1}}。 BaseProduct
分为5 Products
,每个Categories
也由一个单独的类表示,该类派生自超类BaseCategory
。每个Product
都属于一个特定的Category
。 Product
的创建仅在其Category
中有意义且技术上执行,因此必须在Category
的实例化之前实例化相应的Product
。然而,Category
不能独立而且#34;在没有Product
的应用程序中。选择要创建的Product
以及Category
是通过选中String
来确定的。为避免客户端中出现大量if-else
代码,我更倾向于使用Factory Pattern
来创建类别:
class CategoryFactory{
static Category createCategory(String s){
if(s.equals("foo"))
return new Category1();
else if (s.equals("bar"))
return new Category2();
...
}
}
我担心的是我如何解决每个Products
中Category
的创建问题。我应该在String
类的构造函数中传递Category
并在类别中应用类似的Factory
吗?我应该Factory
使用Products
并在Category
的构造函数中将其作为参数提供吗?对整个问题有更好的方法吗?请注意,创建Product
后我无法创建Category
。当我在客户端中设置Category
时,它必须同时创建并包含其Product
。
答案 0 :(得分:2)
你可以这样做。如果2 Category
具有相似或相同的方式来生成getProductFactory()
,那么让Categories
至少以这种方式调用类似Products
的方法可能会更清晰使用工厂。