工厂方法模式
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++设计模式-工厂方法模式”中,我们关注的是如何在C++中实现工厂方法这一设计模式。工厂方法模式的核心思想是定义一个创建对象的接口,但让子类决定实例化哪一个类。这样,工厂方法可以使类的实例化过程...
标题"我讲设计模式--工厂方法"暗示我们将深入探讨工厂方法的设计模式及其应用。这篇博文可能涉及了该模式的基本概念、工作原理以及实际场景下的使用示例。遗憾的是,由于没有直接提供博客的具体内容,我将基于工厂...
《设计模式之——工厂方法(Factory Method)》 在软件工程中,设计模式是一种解决常见问题的可重用解决方案,它被广泛应用于构建高质量、可维护的代码。工厂方法是面向对象设计模式的一种,属于创建型模式。这个...
工厂方法模式是设计模式中的创建型模式,它提供了一种创建对象的最佳方式。在这个模式中,一个类(称为工厂类)不再直接实例化具体的产品,而是定义一个接口或抽象类,由子类来决定实例化哪一个类。这样做的好处在于...
创建型设计模式---工厂设计模式实现
在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...
**工厂方法设计模式** 在iOS开发中,设计模式是一种被广泛采用的最佳实践,它提供了一种在不指定具体实现的情况下创建对象的方式。工厂方法(Factory Method)是面向对象设计模式中的一种,属于创建型模式。它定义...
工厂方法模式是面向对象设计中的一种经典设计模式,属于创建型模式。在软件工程中,当我们需要创建一系列相关或相互依赖的对象时,而不希望指定具体的类,工厂方法模式提供了一个很好的解决方案。 工厂方法模式的...
- 抽象工厂模式(Abstract Factory):提供一个接口,用于创建相关或依赖对象的家族,而无需指定它们的具体类。 - 建造者模式(Builder):将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示...
Java设计模式中的工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。工厂模式的核心思想是将对象的创建过程封装起来,使得创建过程独立于使用过程,从而提高了代码的可扩展性和可维护性。在HeadFirst...
《设计模式——工厂模式》 在软件工程领域,设计模式是一种在特定情境下解决常见问题的模板,它为程序员提供了一种标准的解决方案。工厂模式是面向对象设计中最为人熟知的设计模式之一,属于创建型模式,其主要目标...
在这些模式中,工厂模式尤为突出,它是一种创建型设计模式,为对象的创建提供了抽象接口,使得代码无需直接实例化具体类,而是通过工厂方法来创建对象。 在Java编程语言中,工厂模式的应用广泛且实用。它主要分为三...
这个名为"JAVA设计模式例程-工厂模式-1"的压缩包文件提供了一个关于工厂模式的实例,可以帮助学习者更好地理解和应用这个模式。 工厂模式的核心思想是提供一个创建对象的接口,但让实现延迟到子类去做,这样做的...
工厂模式是设计模式中的一种,属于创建型模式,它提供了一种封装对象创建过程的方法,使得创建对象的过程与使用对象的代码分离,从而提高了代码的灵活性和可扩展性。 工厂模式的核心思想是通过一个工厂类来负责创建...
在给定的“设计模式-工厂方法代码”文件中,我们可以深入探讨工厂方法这一特定的设计模式,以及它在Java编程中的应用。 工厂方法(Factory Method)是创建型设计模式之一,属于行为模式。它的主要作用是定义一个...
在"Java设计模式-工厂方法"的Demo中,我们通常会看到以下关键组件: 1. **抽象产品(Abstract Product)**:这是要创建的对象的接口。它定义了产品的公共接口,这样任何创建的产品都可以被客户端以相同的方式使用,...
java设计模式----抽象工厂模式,简单工厂模式代码 代码内部