工厂方法是类设计模式.Abstract Factory使用了许多Factory方法.为什么抽象工厂是对象设计模式,而不是类设计模式?抽象工厂推迟实例化到哪个对象?
抽象工厂模式将产品对象的创建推迟到ConcreteFactory子类.由于客户端期望Factory类(它是ConcreteFactory子类的父类)作为方法参数; 基于ConcreteFactory传递的实例,创建相应的产品实例.因此,Abstract Factory通过在运行时传递的ConcreteFactory实例上调用工厂方法来创建产品实例.因此,这是对象设计模式.通常这些混凝土工厂是单身人士.
然而,工厂方法发生在班级.必须创建一个新的ConcreteFactory类来实例化ConcreteProduct.这个ConcreteFactory扩展了Factory类,它有一个返回Product的create()方法.ConcreteFactory重写在Factory父类中定义的create()方法.
发表评论:
是工厂方法是参数化的,但在AbstractFactory中,您将能够在传递的ConcreteFactory上调用方法,从而使您能够在运行时切换到不同的ConcreteFactory.但是在Factory中,因为create()是类的一部分,如果要创建具体的产品,则必须创建扩展父Factory类的ConcreteFactory.
| 归档时间: |
|
| 查看次数: |
1376 次 |
| 最近记录: |