工厂方法模式
1.定义
定义个一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法模式使一个类的实例化延迟到其子类。
2.示例代码
/*导出的文件对象接口,即工厂方法所创建的对象接口*/ public interface ExportFileApi{ public boolean export(String data); } /*导出txt格式的实现类*/ public class ExportTxtFile implements ExportFileApi{ public boolean export(String data){ System.out.println("导出data到文本文件"); return true; } } /*导出到数据库备份的实现类*/ public class ExportDB implements ExportFileApi{ public boolean export(String data){ System.out.println("导出data到数据库备份"); return true; } }
/*实现导出数据的业务功能对象,即工厂创建器*/ public abstract class ExportOperate{ public boolean export(String data){ //使用工厂方法 ExportFileApi api = factoryMethod(); return api.export(data); } //工厂方法,创建导出文件对象的接口对象 protected abstract ExportFileApi factoryMethod(); } /*子类工厂创建导出txt文本的数据导出对象*/ public class ExportTxtFileOperate extends ExportOperate{ protected ExportFileApi factoryMethod(){ //创建导出成文本文件格式的对象 return new ExportTxtFile(); } } /*子类工厂创建导出数据库DB备份对象*/ public class ExportDBOperate extends ExportOperate{ protected ExportFileApi factoryMethod(){ //创建导出成文本文件格式的对象 return new ExportDB(); } }
/*客户端自主选择导出txt还是导出到数据库备份*/ public class Client{ public static void main(String args[]){ //创建需要使用的数据导出对象 ExportOperate operate = new ExportDBOperate(); //调用输出数据的功能方法 operate.export("测试数据"); } }
3.实际应用
工厂方法可以让你在实现功能的时候,如果需要某个产品对象,只需要产品的接口即可,而无需关心具体的实现。选择具体实现的任务延迟到子类去完成。工厂方法给子类提供了一个挂钩,使得扩展新的对象版本变得非常容易。比如需要扩展一个导出xml格式的数据,只需新增一个子类来提供新的工厂方法实现,然后在客户端使用新的子类即可。
工厂方法模式的本质:延迟到子类来选择实现
相关推荐
NET设计模式--工厂方法例子源码
c++设计模式-创建型模式-工厂方法模式-最简单的源码-qt工程
设计模式-工厂方法模式视频 设计模式-工厂方法模式视频 设计模式-工厂方法模式视频
设计模式--工厂模式java例子
创建型设计模式---工厂设计模式实现
iOS设计模式-工厂方法 理论在这个网页:http://blog.csdn.net/z251257144/article/details/7479183
java设计模式--工厂模式 HeadFirst 书中的源代码
设计模式_--_工厂模式和单件模式设计模式_--_工厂模式和单件模式
设计模式--抽象工厂模式实现多数据库连接 设计模式,.net设计模式,抽象工厂
设计一个程序来读取多种不同存储格式的图片,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF格式图片读取器(GifReader)用于读取...请使用工厂方法模式实现该程序的设计,并使用UML画出该模式的类图。
工厂方法模式,主要是利用反射机制获取配置文件的信息,用户可以在不知道如何生产对象的情况下获取对象。包括源代码和文档(文档在本博客的文档说明中)。
JAVA设计模式例程-工厂模式,一个实例,正在学习设计模式的朋友可看一下,看完了后应该对工厂模式有所了解了。
NULL 博文链接:https://zhouhaitao.iteye.com/blog/1003702
设计模式-工厂方法 讲解及其源码
创建型设计模式----抽象工厂模式
JAVA设计模式例程-工厂模式-的例程,看完以后基本上能对JAVA上实现简单工厂能有所了解,简单工厂还是比较容易滴,而且也是较为常用的一种设计模式。
设计模式---抽象工厂模式(Abstract Factory)-UML图 (StarUML)
设计模式UML图--工厂模式: 包含了简单工厂、工厂方法、抽象工厂方法三个工厂模式的UML
java设计模式----抽象工厂模式,简单工厂模式代码 代码内部
工厂车间-工厂车间系统-工厂车间系统源码-工厂车间管理系统-工厂车间管理系统java代码-工厂车间系统设计与实现-基于springboot的工厂车间系统-基于Web的工厂车间系统设计与实现-工厂车间网站-工厂车间网站代码-工厂...