创建型设计模式-抽象工厂模式
2017-03-02 16:33
204 查看
抽象工厂:
提供一个创建一系列相关或者相互依赖对象的接口,而无需指定它们具体的类
抽象工厂模式参与角色:
抽象工厂角色:定义创建具体产品的方法
具体工厂角色:执行生成具体产品的方法,生成一个具体的产品
抽象产品:声明一种产品接口
具体产品:定义具体工厂生成的具体产品的对象,实现产品接口
客户角色:使用抽象产品和抽象工程声称对象
抽象工厂角色:AbstractFactory
具体工厂:ConcreteFactory
抽象产品:AbstractProduct
具体产品:ConcreteProduct
测试代码:
结果:
抽象工厂设计模式分析:
抽象工厂设计模式通过设计抽象工厂类/接口和抽象产品类/接口,将工厂生产产品的具体流程剥离出来,相当于定义一个工厂和产品的规范,后续如果想对工厂和产品进行扩展,只需要创建新的工厂和产品类,并实现对应的接口,这样不需要修改原有代码的情况下,通过原有的抽象工厂的接口实现对新工厂和新产品的访问处理,这解决了简单工厂遗留的工厂/产品扩展性的问题。
提供一个创建一系列相关或者相互依赖对象的接口,而无需指定它们具体的类
抽象工厂模式参与角色:
抽象工厂角色:定义创建具体产品的方法
具体工厂角色:执行生成具体产品的方法,生成一个具体的产品
抽象产品:声明一种产品接口
具体产品:定义具体工厂生成的具体产品的对象,实现产品接口
客户角色:使用抽象产品和抽象工程声称对象
抽象工厂角色:AbstractFactory
public abstract class AbstractFactory { /** * 定义工厂的通用方法 * @return */ public abstract AbstractProduct createProduct(); }
具体工厂:ConcreteFactory
public class ConcreteFactory extends AbstractFactory { @Override public AbstractProduct createProduct() { return new ConcreteProduct(); } }
抽象产品:AbstractProduct
public abstract class AbstractProduct { /** * 定义产品的通用方法 */ public abstract void show(); }
具体产品:ConcreteProduct
public class ConcreteProduct extends AbstractProduct{ @Override public void show() { System.out.println("I am a ConcreteProduct!"); } }
测试代码:
AbstractFactory abf=new ConcreteFactory(); //多态:创建实际的具体工厂 AbstractProduct ap=abf.createProduct(); //具体工厂生产具体产品 ap.show(); //产品方法
结果:
抽象工厂设计模式分析:
抽象工厂设计模式通过设计抽象工厂类/接口和抽象产品类/接口,将工厂生产产品的具体流程剥离出来,相当于定义一个工厂和产品的规范,后续如果想对工厂和产品进行扩展,只需要创建新的工厂和产品类,并实现对应的接口,这样不需要修改原有代码的情况下,通过原有的抽象工厂的接口实现对新工厂和新产品的访问处理,这解决了简单工厂遗留的工厂/产品扩展性的问题。
相关文章推荐
- [创建型模式系列]Abstract factory of Design Pattern模式设计之抽象工厂模式
- 设计模式杂谈:创建型模式之抽象工厂模式(Abstract Factory)
- 创建型设计模式——抽象工厂模式
- 设计模式学习(创建型模式)—抽象工厂模式(Abstract Factory)
- 【C#设计模式——创建型模式】抽象工厂模式
- 五.创建型设计模式——Abstract Factory Pattern(抽象工厂模式)
- 设计模式-创建型模式-抽象工厂模式
- 设计模式3——创建型模式之抽象工厂模式
- 设计模式之创建型模式―― 1.3 抽象工厂模式
- [导入]C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式)
- 设计模式笔记(3)---抽象工厂模式(创建型)
- 设计模式3:抽象工厂模式【创建型】
- 设计模式笔记(3)---抽象工厂模式(创建型)
- GoF23种设计模式之创建型模式之抽象工厂模式
- 设计模式学习总结1 - 创建型1 - Abstract Factory抽象工厂模式
- 设计模式笔记(3)---抽象工厂模式(创建型)
- 23种设计模式三:创建型抽象工厂模式
- 设计模式之创建型抽象工厂模式
- JAVA设计模式(02):创建型-抽象工厂模式(Abstract Factory)
- 设计模式笔记(3)---抽象工厂模式(创建型)