设计模式--抽象工厂模式
2017-08-30 14:56
225 查看
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。
抽象工厂模式与工厂方法模式的区别:
抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。
工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。
在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽象类,而抽象工厂模式所提供的产品则是衍生自不同的接口或抽象类。
举例说明::
1.如果一个工厂模式提供2.0排量两厢车和2.4排量两厢车,那么他属于工厂方法模式;如果一个工厂模式是提供2.4排量两厢车和2.4排量三厢车两个产品,那么这个工厂模式就是抽象工厂模式,因为他提供的产品是分属两个不同的等级结构。当然,如果一个工厂提供全部四种车型的产品,因为产品分属两个等级结构,他当然也属于抽象工厂模式了。
2.工厂方法模式:头发:中分、斜分
抽象工厂模式:圣诞系列的男生女生和元旦系列的男生女生
抽象工厂模式与工厂方法模式的区别:
抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。
工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。
在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽象类,而抽象工厂模式所提供的产品则是衍生自不同的接口或抽象类。
举例说明::
1.如果一个工厂模式提供2.0排量两厢车和2.4排量两厢车,那么他属于工厂方法模式;如果一个工厂模式是提供2.4排量两厢车和2.4排量三厢车两个产品,那么这个工厂模式就是抽象工厂模式,因为他提供的产品是分属两个不同的等级结构。当然,如果一个工厂提供全部四种车型的产品,因为产品分属两个等级结构,他当然也属于抽象工厂模式了。
interface IProduct1 { public void show(); } interface IProduct2 { public void show(); } class Product1 implements IProduct1 { public void show() { System.out.println("这是1型产品"); } } class Product2 implements IProduct2 { public void show() { System.out.println("这是2型产品"); } } interface IFactory { public IProduct1 createProduct1(); public IProduct2 createProduct2(); } class Factory implements IFactory{ public IProduct1 createProduct1() { return new Product1(); } public 4000 IProduct2 createProduct2() { return new Product2(); } } public class Client { public static void main(String[] args){ IFactory factory = new Factory(); factory.createProduct1().show(); factory.createProduct2().show(); } }
2.工厂方法模式:头发:中分、斜分
抽象工厂模式:圣诞系列的男生女生和元旦系列的男生女生
相关文章推荐
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式(8)
- 设计模式示例-抽象工厂模式
- 程序设计模式 —— 抽象工厂模式
- java设计模式2--抽象工厂模式(Abstract Factory)
- 设计模式之抽象工厂模式
- 设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)
- 设计模式(3)---->抽象工厂模式
- 创建型设计模式-抽象工厂模式
- 设计模式 (三)抽象工厂模式(AbstractFactory)
- 设计模式之抽象工厂模式
- 设计模式 - 抽象工厂模式
- 设计模式初学者系列-开篇以及抽象工厂模式
- 设计模式--抽象工厂模式
- Java经典设计模式-创建型模式-抽象工厂模式(Abstract Factory)
- 设计模式之抽象工厂模式
- 设计模式学习---第九节:抽象工厂模式
- 设计模式(3)-抽象工厂模式
- [设计模式]-抽象工厂模式ing
- JAVA设计模式之抽象工厂模式