java设计模式之工厂方法模式和抽象工厂模式
2017-05-15 17:43
441 查看
一、创建型模式
1、工厂模式(factory method pattern):
概念:定义了一个接口,让需要的类都实现该接口。然后建立一个工厂类,对实现了同一接口的一些类进行实例的创建。
工厂方法模式将产生的过程交由工厂类处理,而并非类的本身。
场景:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。
2、抽象工厂模式
工厂方法模式有一个问题就是,类的创建依赖工厂类,违背了设计模式的六大原则的开闭原则(对扩展开放,对修改关闭)。也就是说,如果想要拓展程序,必须对工厂类进行修改。先解决这个问题,就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
抽象工厂是指工厂类要产生一个系列的对象,将工厂类进行抽象,这样就可以通过改变工厂类,从而能够改变一系列的对象。
![](http://img.blog.csdn.net/20170302110233680?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUVE5OTQ0MDYwMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170302110244269?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUVE5OTQ0MDYwMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170302110255712?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUVE5OTQ0MDYwMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170302110303972?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUVE5OTQ0MDYwMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170302110314644?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUVE5OTQ0MDYwMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170302110325816?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUVE5OTQ0MDYwMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170302110341426?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUVE5OTQ0MDYwMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170302110348223?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUVE5OTQ0MDYwMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170302110355442?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUVE5OTQ0MDYwMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
1、工厂模式(factory method pattern):
概念:定义了一个接口,让需要的类都实现该接口。然后建立一个工厂类,对实现了同一接口的一些类进行实例的创建。
工厂方法模式将产生的过程交由工厂类处理,而并非类的本身。
场景:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。
2、抽象工厂模式
工厂方法模式有一个问题就是,类的创建依赖工厂类,违背了设计模式的六大原则的开闭原则(对扩展开放,对修改关闭)。也就是说,如果想要拓展程序,必须对工厂类进行修改。先解决这个问题,就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
抽象工厂是指工厂类要产生一个系列的对象,将工厂类进行抽象,这样就可以通过改变工厂类,从而能够改变一系列的对象。
相关文章推荐
- java设计模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式,。 行为型模式,共十一种:策略模式、模板方法)
- JAVA设计模式 - 简单工厂模式、工厂方法模式、抽象工厂模式
- Java 可复用的面向对象的设计模式之 工厂模式Factory详解 :简单工厂模式 工厂方法模式 抽象工厂模式
- Java设计模式-工厂方法模式和抽象工厂模式
- Java设计模式编程中的工厂方法模式和抽象工厂模式
- Java设计模式(2)创建型:工厂模式(工厂方法模式与抽象工厂模式)
- java设计模式之工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
- 常用Java设计模式系列(5)- 简单工厂、工厂方法模式和抽象工厂模式
- java23种设计模式-----简单工厂模式、工厂方法模式、抽象工厂模式的区别
- Java设计模式(三):工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
- JAVA设计模式☞☞工厂方法模式和抽象工厂模式区别
- JAVA设计模式——工厂方法模式和抽象工厂模式
- 6.java设计模式(读书笔记)简单工厂模式、工厂方法模式、抽象工厂模式
- Java与设计模式学习(一)--工厂方法模式FACTORY METHOD
- JAVA设计模式之抽象工厂模式
- 设计模式之—抽象工厂模式(Abstract Factory)-Java实现
- Head First Java 设计模式——工厂方法模式
- 设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
- 设计模式之—工厂方法模式(FactoryMethod)-Java实现
- java中的设计模式(二)--工厂方法模式 反射机制