`
lintomny
  • 浏览: 225694 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Factory - 工厂模式

阅读更多
关于工厂模式,没什么好说的,实在太常见了。不过作为设计模式的完整性,还是将它写出来来。

以前我们创建一个对象时通常是采用new的方式,如
java 代码
  1. Product proa = new ProductA();
  2. Product prob = new ProductB();

这样进行实例创建的一个结果是,当Product子类越来越多的时候,这样就需要修改new代码。这样是很麻烦的。一个解决的方法就是使用一个对象来管理这些对象的创建。这个用来创建对象的便是Factory。

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。(G4)

下面来看看具体的实现代码吧。
java 代码
 
  1. // 工厂方法所创建的对象的接口  
  2. public interface Product {  
  3.   ......  
  4. }  

java 代码
 
  1. // 产品A  
  2. public class ProductA implements Product {  
  3.   ......  
  4. }  
  5.   
  6. // 产品B  
  7. public class ProductB implements Product {  
  8.   ......  
  9. }  

工厂
java 代码
 
  1. // 工厂,用于创建具体的Product  
  2. public class Factory {  
  3.   //创建Product  
  4.   public static Product createProduct (String product) {
  5.     if( product.equals("A") )  
  6.       return new ProductA();  
  7.     else if ( product.equals("B") )  
  8.       return new ProductB();  
  9.     else   
  10.       ......  
  11.   }  
  12. }  

这样,我们创建对象的时候就不需要使用new了。

java 代码
 
  1. Product proa = Factory.createProduct("A");   
  2. Product prob = Factory.createProduct("B");  

分享到:
评论

相关推荐

    创建型模式--工厂模式(Factory Pattern)示范代码

    java 创建型模式--工厂模式(Factory Pattern)示范代码demo,关于工厂模式可以查看我的博客 http://blog.csdn.net/u012930316/article/details/54599580

    设计模式---抽象工厂模式(Abstract Factory)-UML图 (StarUML)

    设计模式---抽象工厂模式(Abstract Factory)-UML图 (StarUML)

    开源项目-bluele-factory-go.zip

    factory-go通过定义工厂模式,允许开发者定义和生成复杂的测试对象,减少了样板代码,提高了测试的效率和可读性。 该项目的核心概念是“Factory”,它是一个可以生成特定类型实例的对象。开发者可以通过定义Factory...

    java-sington-factory-proxy 开发模式

    本资源包主要涵盖了三种经典的设计模式:单例模式、工厂模式以及代理模式。下面将详细阐述这三种模式的概念、实现方式及其在实际开发中的应用。 **单例模式**: 单例模式是一种限制类实例化次数为一次的设计模式,...

    软件编程模式---工厂模式基础

    - **简单工厂模式(Simple Factory)**:也称为静态工厂方法模式,通过一个静态方法来创建产品对象,不涉及类的实例化。 - **工厂方法模式(Factory Method)**:定义一个创建对象的接口,让子类决定实例化哪一个类...

    设计模式----工厂模式

    1. **简单工厂模式**(Simple Factory Pattern):由一个静态方法或单例类负责创建对象,适用于对象种类较少且不会频繁变动的情况。 2. **工厂方法模式**(Factory Method Pattern):定义一个创建对象的接口,让...

    factory-method-demo.zip

    工厂方法模式是设计模式中的创建型模式之一,它在软件工程中扮演着非常重要的角色。这个模式的主要目的是将对象的创建过程抽象出来,使得创建过程独立于使用对象的客户端,从而提高了系统的可扩展性和可维护性。在这...

    JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)

    **简单工厂模式**是软件设计模式中的一种,属于创建型模式。在Java编程中,它是一种用于创建对象的简便方法,将对象的实例化过程封装到一个单独的工厂类中,使得客户端代码无需直接调用具体类的构造函数,而是通过...

    A-classic-factory-pattern-example.rar_factory

    这个"A-classic-factory-pattern-example.rar_factory"压缩包中包含的"一个工厂模式的简单但典型的例子"是为了帮助初学者理解和应用工厂模式而设计的。下面我们将详细探讨工厂模式的核心概念、工作原理以及其在实际...

    Simple-Factory-for-Salary.rar_factory

    【标题】"Simple-Factory-for-Salary.rar_factory" 指的是一个使用简单工厂设计模式来计算薪资的项目,特别适用于Visual C++ 6.0(VC6)环境。这个项目可能包含了一个或多个用于创建薪资计算类实例的工厂类,以适应...

    Factory Method 工厂方法模式(创建型模式)

    ### Factory Method 工厂方法模式(创建型模式) #### 概述 在软件工程领域,设计模式是一种在特定上下文中解决常见问题的通用方案。Factory Method(工厂方法)模式是GoF(Gang of Four)设计模式之一,属于创建型...

    c++设计模式-工厂方法模式

    描述中的“创建型模式-工厂方法模式-最简单的源码-qt工程”表明,这个压缩包可能包含了一个基于Qt框架的C++项目,该项目展示了工厂方法模式的简单应用。Qt是一个跨平台的应用程序开发框架,广泛用于GUI编程,但也...

    factory-thing-源码.rar

    "Factory-Thing"看起来像是一个项目或库的名称,它可能与软件开发中的工厂模式或者实体(thing)的创建有关。工厂模式是设计模式中的一种,广泛应用于面向对象编程,尤其是在Java、C#等语言中。它提供了一种创建对象...

    Laravel开发-factory-stories

    "Factory Stories"是将工厂模式应用到具体业务场景的一种概念,它帮助开发者构建更加复杂的关联数据模型。下面,我们将深入探讨Laravel模型工厂及其在开发中的应用。 ### 1. 模型工厂定义 在Laravel中,模型工厂...

    calculator-of-Simple-Factory-Pattern.rar_factory

    总的来说,这个"calculator-of-Simple-Factory-Pattern.rar_factory"项目展示了如何运用简单工厂模式来构建一个计算器系统,使得系统能够根据不同的计算需求动态地创建相应的计算器对象,同时也为未来的功能扩展打下...

    Java设计模式教程 - Java设计模式 - 工厂模式

    在压缩包"Factory-Pattern"中,可能包含了相关的代码示例,这些示例可能涵盖了简单工厂、工厂方法以及抽象工厂的实现。通过学习这些代码,你可以更好地理解工厂模式的工作原理,以及如何在自己的项目中应用这些模式...

    simple-factory-demo.zip

    在这个`simple-factory-demo.zip`压缩包中,我们很可能会找到一个示例程序,它演示了如何在实际代码中应用简单工厂模式。 简单工厂模式的核心思想是通过一个工厂类来负责创建对象,而不是让客户端直接实例化具体的...

    Factory-Method-for-Salary.rar_factory

    工厂方法(Factory Method)设计模式是面向对象设计中的一种经典模式,它属于创建型设计模式,主要用于解决对象创建的问题。在这个名为“Factory-Method-for-Salary.rar_factory”的项目中,我们将深入探讨如何利用...

    设计模式-工厂模式 Java源码

    在这个名为"factory"的压缩包文件中,很可能是包含了上述三种工厂模式的Java源码实现。通过查看这些源码,我们可以学习如何在实际项目中应用工厂模式,理解其背后的意图和实现方式,从而提升我们的编程技能和设计...

Global site tag (gtag.js) - Google Analytics