我想问一下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的吗?我应该使用FactoryforProducts并将其作为构造函数中的参数提供Category吗?有没有更好的方法来解决整个问题?请记住,Product在创建Category. 当我Category在客户端中实例化 a 时,它必须同时创建和包含它的Product.