Factory、Abstract Factory、Builder、Prototype都和创建对象相关。客户使用某一类型的对象时,不需要直接创建具体的对象本身,而是通过使用顶层的接口类,具体创建对象的工作延迟到子类去实现。
这样做的好处是需求变化时,客户端或主逻辑流程不需要更新代码,变化的需求可以在封装的方法中修改增加(把变化赶到有限的区域内)。
Factory Pattern
1.简单工厂类本身是静态的,方便全局使用。具有条件返回多态对象的方法,一般有不同子类对象的标识传参,以便动态的实例化不同的子类对象。
2.缺点是如果要增加对象种类,则需要直接修改工厂基类。此处引入工厂模式
2.工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象
3.由于使用了面向对象的多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不负责哪一个产品类被实例化这种细节,这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。
Abstract Factory
1.Abstract Factory,是有一个工厂基类接口,可以多态的实例化不同系列对象,各系列对象不但数量相同,并且某一子类工厂生成的各个对象,都相应的与其他子类工厂生成的对象类型相同(即拥有相同的基类接口。)
2.同一系列对象关系密切(关联关系、聚合关系),并且紧密使用(如在一个方法内);