简单工厂模式在一定程度上满足了"开闭原则"(对扩展开放,对修改关闭)。即某一对象请求实例化时只需要向工厂方法
请求,然后由工厂方法负责创建某一具体对象并返回它,而不需要修改现有代码。但是工厂方法里可以创建的对象是有限
的,一旦有新的产品需要增加时就需要修改现有工厂类代码,将必要的逻辑加到工厂类中。
工厂方法模式克服了这个缺点。工厂方法模式也是类的创建模式,又叫多态性工厂模式,它是定义一个创建产品对象
的工厂接口,将实际创建工作推迟到子类中。
在工厂方法模式中,核心的工厂类不再负责所有的产品的创建,而是将具体创建的工作交给子类去做。
源码实例
/**
* 产品接口
* @author Administrator
*
*/
public interface Product {
}
/**
* 工厂方法
* 接口
* @author Administrator
*
*/
public interface Creator {
public Product factory();
}
/**
* 具体实现类
* @author Administrator
*
*/
public class ConcretorCreator1 implements Creator {
public Product factory() {
return new ConcreteProduct1();
}
}
/**
* 实现了接口product的类
* @author Administrator
*
*/
public class ConcreteProduct1 implements Product {
public ConcreteProduct1(){
}
}
/**
* 具体实现类
* @author Administrator
*
*/
public class ConcretorCreator2 implements Creator {
public Product factory() {
return new ConcretorProduct2();
}
}
/**
* 实现了接口product的类
* @author Administrator
*
*/
public class ConcretorProduct2 implements Product {
public ConcretorProduct2(){
}
}
public class ClientInvoke {
private static Product product1,producet2;
private static Creator creator1,creator2;
public static void main(String args[]){
creator1=new ConcretorCreator1();
product1=creator1.factory();
creator2=new ConcretorCreator2();
producet2=creator2.factory();
}
}
分享到:
相关推荐
C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method)
java设计模式之工厂方法模式 学习设计模式已经有一段时间了,但经常还是会很困惑。看书上的代码会发现很多不同的设计模式的代码结构非常相似。比如 Bridge 和 Strategy 。。。 设计模式就是我们设计过程中经常出现的...
23种设计模式之工厂方法模式对工厂方法模式进行了简单的介绍,并附带了例子程序,和大家分享
研磨设计模式之 工厂方法模式.doc
摘要 :设计模式是面 向对 象的软件设计与 实现的关键技 术 ,如何根 据设计要...厂方法模 式是程序设计 中被广泛使 用的设计模式之一。本文重点介绍,使用工厂方法模式的一般原则,同时结合具体的实例来描述它的应用。
本文实例讲述了Python设计模式之工厂方法模式。分享给大家供大家参考,具体如下: 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延时到其...
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
设计模式之工厂方法、简单工厂、抽象工厂
设计模式之禅之 工厂方法模式+策略模式 设计模式之禅之 工厂方法模式+策略模式
这个是http://blog.csdn.net/dawanganban/article/details/9877593博客中java设计模式的源代码。下载前请先看《设计模式——工厂方法模式》一文。
Java牛人精华之作,制成PDF格式电子书,分享