工厂方法模式
来源:互联网 发布:梵克雅宝香水知乎 编辑:程序博客网 时间:2024/05/22 06:22
对工厂方法模式的理解
-工厂方法模式的定义
一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂 方法模式又简称为工厂模式,又可称作虚拟构造器模式或多态工厂模式。是一种创建型模式
产品类和工厂类都有自己的抽象基类,与简单工厂方法相比,此模式最重要的区别是引入了抽象工厂角色。
完整解决方案见《设计模式的艺术》 pg66。抽象产品、具体产品 抽象工厂、具体工厂
这实际上就是对简单工厂模式的扩展,将工厂类也抽象出基类,这样,改代码时,就只需要添加新的产品类代码,原来的代码就可以不作改动。
主要适用在,1)客户端不知道其所需要的对象的类,
2)抽象工厂类通过其子类来指定创建哪个对象。
一个使用例子:
使用工厂方法模式设计一个程序来读取各种不同类型的图片格式,针对每一种图片都设计一个图片 读取器,例如,GIF图片读取器用于读取GIF格式的图片,JPG图片读取器用于读取JPG格式的图片。需充分考虑系统的灵活性和可扩展性。
//图片读取器接口,抽象产品interface Reader{ public void ReaderPic();}//GIF读取器:具体产品class GIFReader implements Reader{ public void ReaderPic(){ System.out.println("GIF读取"); }}//JPG读取器:具体产品class JPGReader implements Reader{ public void ReaderPic(){ System.out.println("JPG读取"); }}//图片读取器工厂接口:抽象工厂interface ReaderFactory{ public Reader createReader();}//GIF读取器工厂类:具体工厂class GIFReaderFactory implements ReaderFactory{ public Reader createReader(){ Reader reader = new GIFReader(); return reader; }}//JPG读取器工厂接口:抽象工厂class JPGReaderFactory implements ReaderFactory{ public Reader createReader(){ Reader reader = new JPGReader(); return reader; }}
客户端的测评代码
class Client{ public static void main(String argx[]){ ReaderFactory factory; Reader reader; factory = new GIFReaderFactory(); reader = factory.createReader(); reader.ReaderPic(); }}
可以利用JAVA中的反射与配置文件将扩展,也就不再需要修改客户端代码
0 0
- 工厂模式 -- 工厂方法
- 工厂模式-工厂方法
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式---工厂方法模式
- 【模式】工厂方法模式
- 工厂方法,抽象工厂模式
- C#工厂模式-工厂方法
- 工厂模式 和工厂方法
- 工厂模式-C-工厂方法
- 工厂模式以及工厂方法
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 工厂模式(简单工厂、工厂方法)
- 简单工厂|工厂方法|抽象工厂模式
- 设计模式-工厂模式(简单工厂模式+工厂方法模式)
- 三个数中输出其中最小的
- c++类构造顺序
- 设计模式中类的关系
- kali安装zmap
- Matlab .asv是什么文件
- 工厂方法模式
- J2EE--Servlet
- 原是翩翩佳公子,一入江湖岁月催
- 【基础练习】【贪心】【递推】NOIP2013提高组第五题 积木大赛题解
- HTML与XHTML的区别
- Java中static关键字的作用
- 湖南多校对抗赛---Good subsequence
- POJ 2486-Apple Tree(树形DP)(难)
- php面向对象编程示例学习笔记