标签:集合 creating abs inter str ctp 工厂 crete ctf
抽象工厂模式(Abstract Factory Pattern)
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。
1、AbstractFactory
-声明一个创建抽象产品对象的操作接口。
2、ConcreteFactory
-实现创建具体产品对象的操作
3、AbstractProduct
-为一类产品对象声明一个接口。
4、ConcreteProduct
-定义一个将被相应的具体工厂创建的产品对象。
-实现AbstractProduct接口。
5、Client
-仅使用由AbstractFactory和AbstractProduct类声明的接口
public abstract class AbstractFactory { public abstract AbstractProductA createProductA(); public abstract AbstractProductB createProductB(); }
1、分离了具体的类。
客户与类的实现分离。客户通过它们的抽象接口操纵实例。产品的类名也在具体工厂的实现中被分离;它们不出现在客户代码。
2、它使得易于交换产品系列。
只需要改变具体的工厂就可以使用不同的产品配置。
3、它有利于产品的一致性。
一个应用一次只能使用同一个系列中的对象。
4、难以支持新种类的产品。
AbstractFactory接口确定了可以被创建的产品集合。支持新种类的产品就需要扩展该工厂接口,这将涉及Abstractory类及其所有子类的改变。
《设计模式:可复用面向对象软件的基础》
标签:集合 creating abs inter str ctp 工厂 crete ctf
原文地址:https://www.cnblogs.com/diameter/p/13169895.html