`
blues1021
  • 浏览: 141265 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

Simple Factory(Static factory)简单工厂模式-java设计模式1

 
阅读更多

  一、概念:
       简单工厂模式,就是一个应用声明了Factory对象,然后传入参数,Factory根据参数判断决定返回那个子类对象。
      这些子类通常具有共同的父类和共同的方法,但是不同的类执行的任务个不相同。
  二、示例模型:
 下面是James W.Cooper著的《Java Design Patterns A Tutorial》举的一个经典例子,支持“Jerome Cen”和"Cen,Jerome"姓名格式输入和计算输出的程序:
  


三、重点解析示例:
 其 中 Namer为Public的基类。FirstLast用String类的lastIndexOf(" "),substring()方法给first,last赋值。LastFirst用String类的IndexOf(" ,"),substring()方法给first,last赋值。NamerFactory用:
public class NamerFactory {
    //Factory decides which class to return based on
    //presence of a comma
    public Namer getNamer(String entry) {
        //comma determines name order
        int i = entry.indexOf(",");  
        if (i > 0)
            return new LastFirst(entry);
        else
            return new FirstFirst(entry);
    }
}
其关键就在NamerFactory中用了 int i = entry.indexOf(",");做了判断(根据参数及初始化基类的数据成员),用来决定返回的子类对象类型。
 在 Person类中因为为一个基于AWT的支持输入和计算输出的组件,在Button compute组件中注册了compute.AddActionListener(this);然后可以直接写public void actionPerformed(ActionEvent e){
//用e.getSource==compute时,然后调用computeName()方法
}

  private void computeName() {
      namer = nfactory.getNamer (entryField.getText());//工厂模式用工厂类参数判断返回的子类,而模型类作为子类的基类和工厂类的属性(聚合关系)。
      txFirstName.setText(namer.getFirst ());//模型基类中声明的方法。
      txLastName.setText(namer.getLast ());
  }
 实际上对用户屏蔽了具体调用的子类,在Simple Factory处为用户提供了统一的接口,得到基类的对象,用对象调用基类方法实现要求。
所以在学习J2SE API时提供不同类型参数的类,可以其实现就是由具体子类实现的,当然也能是类本身实现的。

分享到:
评论

相关推荐

    简单的工厂模式实现-java

    在软件设计模式中,工厂模式是一种非常基础且实用的设计模式,它主要用于解决对象创建的问题,尤其是在需要根据不同的条件创建不同类的对象时。本资源提供的"简单的工厂模式实现-java"是用Java语言实现的一个基本的...

    简单工厂模式源码-JAVA

    简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要用来解决对象的创建问题。在Java编程中,简单工厂模式通过一个公共的工厂类来创建对象,这样客户端只需要知道产品类型,而无需了解如何创建这些...

    java工厂模式-简单工厂模式

    ### Java工厂模式—简单工厂模式 #### 一、引言 简单工厂模式并不是GoF设计模式之一,但它作为设计模式的基础,在实际项目中被广泛使用。简单工厂模式的主要目的是将对象的创建与对象的使用分离,使代码更加灵活,...

    java设计模式-简单工厂模式示例

    简单工厂模式是面向对象设计中的一种经典设计模式,它属于创建型模式,主要用来解决对象的创建问题。在Java编程中,简单工厂模式通过一个中心工厂类来负责创建相关的对象,而无需让客户端代码直接new具体的产品类。...

    JAVA设计模式例程-工厂模式-2

    工厂模式是设计模式中的一种,尤其在Java中应用广泛。本文将深入探讨Java中的工厂模式,以及如何通过实例来理解它的应用。 工厂模式属于创建型设计模式,它的主要目标是提供一个接口,用于创建相关或依赖对象的家族...

    设计模式-简单工厂模式-例题

    简单工厂模式(Simple Factory Pattern)是一种常用的创建型设计模式。它提供了一种方式来封装对象的创建过程,使得整个系统更加灵活,易于扩展。在简单工厂模式中,存在一个专门用于创建对象的工厂类,它负责根据...

    Java设计模式-简单工厂

    **Java设计模式——简单工厂** 简单工厂模式是软件设计模式中的一种基础模式,它属于创建型设计模式。在Java编程中,我们常常会遇到需要创建一系列相关或相互依赖的对象,而这些对象的创建过程可能会非常复杂。这时...

    Simple Factory Pattern.rar【GoF的简单工厂模式(C#源码)】

    简单工厂模式的实质是由一个工厂类根据传入的参量,动态决定应该创建出哪一个产品类的实例。简单工厂模式实际上不属于23个GoF模式,但它可以作为GoF的工厂方法模式(Factory Method)的一个引导。 UML: ...

    设计模式 t01SimpleFactory

    "t01SimpleFactory"指的是简单工厂(Simple Factory)设计模式,它是创建型设计模式之一。 简单工厂模式的核心思想是通过一个公共的工厂类来创建对象,这个工厂类负责实例化客户所需的对象,客户只需要知道具体的...

    java与设计模式--通俗易懂的介绍

    Java 与设计模式是软件开发中的重要主题,它们旨在提高代码的可维护性、灵活性和重用性。设计模式是对在软件设计中经常出现的问题及其解决方案的一种通用、可复用的描述。本篇将通俗易懂地介绍几种常见的设计模式,...

    Java设计模式之工厂模式(Factory)

    1. **简单工厂模式(Simple Factory)**:适用于需求较为简单的情况,主要负责创建一系列相关的对象。 2. **工厂方法模式(Factory Method)**:用于处理不同类型的对象创建过程,提供了一种接口来创建一系列相关或...

    设计模式----简单工厂模式

    简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,使得代码在创建对象时更加灵活,同时也隐藏了对象的创建细节,提高了代码的可读性和可维护性。在Java编程中,简单工厂模式...

    工厂模式FactoryMode

    在Java中,工厂模式有三种主要形式:简单工厂模式、工厂方法模式和抽象工厂模式。 1. 简单工厂模式:也称为静态工厂模式,它通过一个静态方法来创建对象。在这个模式中,工厂类负责决定实例化哪个产品类。这种模式...

    设计模式-简单工厂模式(讲解及其实现代码)

    **简单工厂模式**是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪个类。这个模式使代码可以独立于实际的产品类进行编写。 ### 模式概念 在软件工程中,当一个类不知道它所应该创建的...

    工厂模式java代码

    工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当客户端请求创建一个对象时,它不直接创建对象,而是调用一个工厂类来创建。这样做的好处在于,客户端与具体创建的对象之间...

    简单工厂模式

    在这个设计模式课程资料中,我们将使用Java语言来阐述和实现简单工厂模式,并在Eclipse集成开发环境中进行编译。 简单工厂模式的核心思想是提供一个工厂类,这个工厂类负责创建一系列相关的对象,而不是让客户端...

    设计模式-工厂模式.pdf

    1. **简单工厂模式**:简单工厂模式由一个工厂对象决定创建出哪一种产品类的实例。这种模式提供了一个简单的创建对象的方式。 2. **工厂方法模式**:工厂方法模式提供了一个创建对象的接口,但允许子类决定实例化哪...

    JAVA设计模式之工厂模式.pdf

    简单工厂模式(Simple Factory Pattern)又称静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据自变量的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建...

    JAVA简单工厂创立性模式介绍

    Java中的创建型设计模式是软件设计模式的一种,主要用于解决对象的创建问题,使得代码更加灵活,易于扩展。本文将深入探讨简单工厂、工厂方法和抽象工厂这三种在Java中常用的创建型模式,通过实例解析帮助你更好地...

Global site tag (gtag.js) - Google Analytics