我有一个包含方法和复杂数据结构的Product类。我将有8种类型的产品仅在数据结构的内容上有所不同,没有别的。在我的应用程序中,我需要为8种产品中的每一种创建一个实例,并且存在的产品类型在运行时不会改变。工厂设计模式VS构造器
什么是最好的方法,为什么?
A)类产品有8个子类。这些子类中的每一个仅定义构造函数。在每个构造函数中,为该类型的产品正确创建数据结构。 B)工厂类有8个子类。这八个类别中的每一个都是一个混凝土工厂。类产品没有子类。每个具体工厂通过创建适当的数据结构并将其作为参数传递给类Product的构造函数来创建特定类型的产品。
我一直在评论工厂设计模式的优点,我无法看到,对于这种特殊情况,B中的任何优势都超过A.我错过了什么吗?
我从来没有见过一个工厂被分类。它会有每种类型的方法。但是,如果需要静态的Product对象集合,Factory更多用于在运行时创建这些对象 –
您的意思是像Factory一样使用返回8个产品的集合的方法?如果它返回一个集合而不是单个对象,它会被认为是正确的工厂设计模式吗? – CesarPim
“我将有8种类型的产品仅在数据结构的内容上有所不同,没有别的。”什么是数据结构?如果它只是一个聚合(例如,数组,链表等),那么你不需要8个子类。 – Fuhrmanator