简单工厂模式将对象的创建过程进行了集中管理,抽象了多种对象的创建过程。工厂与产品基类的关系是一一对应。
工厂方法模式对简单工厂模式在工程上进行了改进,改善了增加新产品对原有产品线的影响问题。
在生产规模更大的时候,增加一个创建对象(产品)的参考维度,以此维度对工厂进行划分,工厂类型不再对应产品大类,而是对应产品的新维度,这样在增加新产品大类时,并不增加新维度的可能值个数,也就不用增加新的工厂类型,而增加的只是每个工厂子类内部的产品线。由于工厂能力加强,工厂子类与产品基类的关系是一对多的对应关系。当且仅当产品的新维度增加了新的可能值时,工厂才需要增加新的子类,减弱了工厂种类随产品种类增加的趋势。
对于要创建的对象,可以按照一个维度来区分产品大类,按照另一个维度区分工厂子类。如果把维度的值表示为整数,产品子类就是两个维度构成的二维平面的整数位置的点。
如果我们想用3个维度描述一个对象,那么多出来的维度在工厂模式种不能作为类的划分依据了,我们只能将这个维度作为所有产品类的共同属性。
网友评论