0

我想问一下Factory Pattern在这种情况下是否推荐使用 (abstract):我有 20 个Products,所有这些都由一个派生自 superclass 的单独类表示BaseProductProducts它们分为 5 个Categories,每一个也由一个派生自超类的单独类表示BaseCategory。每一个都Product属于一个特定的Category。a 的创建Product仅在其 中有意义且技术上执行Category,因此Category必须在 的实例化之前实例化相应的Product。然而,没有 aCategory就不能在应用程序中“独立” ProductProduct要创建的 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.

4

1 回答 1

2

你可以这样做。如果 2具有相似或相同的生产方式,您可以重新使用工厂,那么Category拥有一个getProductFactory()至少以这种方式调用的方法可能会更干净。CategoriesProducts

于 2013-08-15T14:37:04.707 回答