我想问是否使用(摘要)Factory Pattern
在这种情况下推荐:我有 20 Products
所有这些都由派生自父类(super class) BaseProduct
的单独类表示。 。 Products
分为 5 Categories
,其中每一个也由派生自父类(super class) BaseCategory
的单独类表示。 。每个Product
属于一个特定的Category
。创建Product
仅在其 Category
中才有意义且技术性地执行,因此相应的Category
必须在 Product
实例化之前实例化。然而Category
如果没有 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
。
最佳答案
你可以这样做。如果 2 个 Categories
具有相似或相同的方式,那么让 Category
拥有一个名为 getProductFactory()
之类的方法(至少这样)可能会更清晰要生产产品
,您可以重复使用工厂。
关于java - 分两个层次应用工厂模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254962/