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

Java 设计模式-简单工厂(Simple Factory)

阅读更多

   简单工厂模式是类的创建模式,又叫做静态工厂方法模式(Static Factory Method Pattern)

   目的: 封装对象的创建过程,用户只需要传入指定的参数即可获取相应的实例。

   优点:封装了实例的创建过程,客户端只需要消费实例;进行了责任分割。

 

有一个水果店,中出售两种水果;一种是苹果,一种是橘子;客户只需要指定自己需要的什么什么类型的苹果或者橘子就可以了,而不必知道这些水果是怎么种植,运输加工的。

   

  

/**
 * 水果接口
 * @author Lenovo
 * @version $Id: Fruit.java, v 0.1 2014年9月20日 下午4:42:48 Lenovo Exp $
 */
public interface Fruits {

    /**
     * 获取水果的名称
     *
     * @return 水果的名称
     */
    public String getName();

}

 

/**
 * 定义苹果类
 * @author Lenovo
 * @version $Id: Apple.java, v 0.1 2014年9月20日 下午4:45:18 Lenovo Exp $
 */
public class Apple implements Fruits {
    /**
     * 水果的名称
     */
    private String name;

    /**
     * Getter method for property <tt>name</tt>.
     *
     * @return property value of name
     */
    public String getName() {
        return name;
    }

    /**
     * Setter method for property <tt>name</tt>.
     *
     * @param name value to be assigned to property name
     */
    public void setName(String name) {
        this.name = name;
    }

    public Apple(String name) {
        super();
        this.name = name;
    }

}


/**
 *
 * @author Lenovo
 * @version $Id: Orange.java, v 0.1 2014年9月20日 下午4:53:58 Lenovo Exp $
 */
public class Orange implements Fruits {
    /**
     * 橘子的名称
     */
    String name;

    /**
     * Getter method for property <tt>name</tt>.
     *
     * @return property value of name
     */
    public String getName() {
        return name;
    }

    /**
     * Setter method for property <tt>name</tt>.
     *
     * @param name value to be assigned to property name
     */
    public void setName(String name) {
        this.name = name;
    }

    public Orange(String name) {
        super();
        this.name = name;
    }

}

/**
 *
 * 水果简单工厂
 * 简单工厂模式,就是根据传入的参数决定创建出哪一个产品
 *
 * 优点:
 *  简单工厂模式的核心就是工厂类。 这个类包含必要的逻辑判断,可以决定在什么时候创建什么产品;而客户端则可以免除直接创建产品的对象
 *  的责任,而仅仅负责消费产品。
 *  缺点:
 *   当产品类有多层次的等级结构时,只有工厂类以不变应万变。
 *   由于简单工厂模式使用的是静态方法作为工厂方法,而静态方法无法由子类继承,因此工厂角色无法形成基于继承的等级结构。
 * @author Lenovo
 * @version $Id: FruitFactory.java, v 0.1 2014年9月20日 下午4:41:53 Lenovo Exp $
 */
public class FruitFactory {

    enum FRUITS {
        APPLE, ORANGE;
    }

    public static Fruits factory(FRUITS type) {
        switch (type) {
            case APPLE:
                return new Apple("花牛苹果");
            case ORANGE:
                return new Orange("秋山蜜柑");
            default:
                throw new UnsupportedOperationException();
        }
    }
}

/**
 *
 * @author Lenovo
 * @version $Id: Client.java, v 0.1 2014年9月20日 下午5:00:10 Lenovo Exp $
 */
public class Client {
    public static void main(String[] args) {
        Fruits f = FruitFactory.factory(FRUITS.APPLE);
        LoggerUtils.info(f.getName());

        Fruits orange = FruitFactory.factory(FRUITS.ORANGE);
        LoggerUtils.info(orange.getName());
    }

}

 

分享到:
评论

相关推荐

    Java设计模式-简单工厂

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

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

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

    java 设计模式 Facade外观模式 Simple Factory 简单工厂模式

    总的来说,Facade模式和Simple Factory模式是Java设计模式中的重要组成部分,它们分别解决了简化复杂系统接口和对象创建的问题。学习和运用这些模式,不仅可以提高代码质量,还能使软件更加灵活,适应未来可能的变化...

    java设计模式-简单工厂

    在给出的压缩包文件`SimpleFactory`中,可能包含了实现简单工厂模式的相关代码,包括产品接口、具体产品类和工厂类的Java源文件。通过查看和学习这些代码,我们可以更深入地理解简单工厂模式的工作原理以及如何在...

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

    简单工厂模式并不是GoF设计模式之一,但它作为设计模式的基础,在实际项目中被广泛使用。简单工厂模式的主要目的是将对象的创建与对象的使用分离,使代码更加灵活,易于扩展和维护。本文将详细介绍简单工厂模式的...

    北风网-设计模式-简单工厂模式ppt

    "SimpleFactory"可能是这个PPT中的一个示例代码文件,展示了如何在实际编程中实现简单工厂。这个文件可能包含了一个工厂类,用于根据输入条件返回具体的产品实例。 在学习这个PPT时,你可以关注如何将简单工厂模式...

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

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

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

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

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

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

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

    `PatternsInJava.pdf`可能包含了更多关于Java中的设计模式的详细解释和示例,包括但不限于简单工厂模式。阅读这份文档可以帮助你深入理解如何在实际项目中有效地应用设计模式,提高代码质量与可维护性。 设计模式是...

    设计模式-简单工厂

    简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,降低了客户端代码与具体产品类之间的耦合。在这个Java简单工厂练习示例中,我们将深入探讨简单工厂模式的核心概念、优缺点...

    java工厂模式SimpleFactory

    总的来说,Java工厂模式SimpleFactory是一种实用的设计模式,能够帮助我们更好地管理对象的创建过程,提高代码的可维护性和可扩展性。通过将对象的创建过程封装在工厂类中,我们可以在不修改客户端代码的情况下,...

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

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

    工厂模式(简单工厂,普通工厂,抽象工厂)代码java

    - 在`SimpleFactory`文件中,我们可以看到一个简单的工厂类,它根据输入类型创建相应的对象。这种模式适用于对象种类较少且不常变动的情况。 2. **普通工厂模式**(工厂方法模式): - 工厂方法模式将对象的创建...

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

    ### Java设计模式之工厂模式详解 #### 一、引言 设计模式是在软件设计过程中针对常见问题而提出的标准化解决方案。其中,“工厂模式”是面向对象编程中最常用的模式之一,主要目的是封装实例化过程,使代码更加...

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

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

    java设计模式之简单工厂.zip

    在这个"java设计模式之简单工厂.zip"压缩包中,包含了两个视频文件,分别以“5.理解简单工厂.avi”和“4.初识和体会简单工厂.avi”命名,它们旨在帮助我们深入理解和掌握Java中的简单工厂设计模式。 简单工厂模式是...

    专题资料(2021-2022年)Java设计模式之工厂模式Factory.doc

    【Java设计模式之工厂模式Factory】是面向对象编程领域中常用的设计模式,它提供了一种创建对象的最佳方式。工厂模式的主要思想是将对象的创建过程封装起来,使得客户端(使用对象的代码)无需关心对象的具体创建...

Global site tag (gtag.js) - Google Analytics