我想问一下Factory Pattern
在这种情况下是否推荐使用 (abstract):我有 20 个Products
,所有这些都由一个派生自 superclass 的单独类表示BaseProduct
。Products
它们分为 5 个Categories
,每一个也由一个派生自超类的单独类表示BaseCategory
。每一个都Product
属于一个特定的Category
。a 的创建Product
仅在其 中有意义且技术上执行Category
,因此Category
必须在 的实例化之前实例化相应的Product
。然而,没有 aCategory
就不能在应用程序中“独立” Product
。Product
要创建的 a以及要创建的 a 的选择Category
是通过检查 a 来确定的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
forProducts
并将其作为构造函数中的参数提供Category
吗?有没有更好的方法来解决整个问题?请记住,Product
在创建Category
. 当我Category
在客户端中实例化 a 时,它必须同时创建和包含它的Product
.