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

Java 设计模式-工厂方法(Factory Method)

 
阅读更多

      在创建类时,通常可以定义多个构造方法,然后使用它们创建类的实例。 但是有的时候,客户端仅仅需要使用该实例却不关系该实例究竟是从哪个类创建而来。

       工厂方法模式的意图就是定义一个用于创建对象的接口,并返回类的实例。

    在java 中Iterator就是一个典型的示例;在Collection中定义一个创建对象的接口 iterator。 在子类中实现了该接口。在使用时候不需关系该实例是如何被创建的。

 

     List<String> list = Arrays.asList("1", "2");
        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }

 

/**
 *
 * @author Lenovo
 * @version $Id: Factory.java, v 0.1 2014年9月20日 下午5:17:22 Lenovo Exp $
 */
public interface Factory {

    public Fruits produce();

}
/**
 *
 * @author Lenovo
 * @version $Id: OrangeFactory.java, v 0.1 2014年9月20日 下午9:21:00 Lenovo Exp $
 */
public class OrangeFactory implements Factory {

    /**
     * @see com.cathy.demo.pattern.FactoryMethod.Factory#produce()
     */
    public Fruits produce() {
        return new Orange("芦柑");
    }

}
/**
 *
 * @author Lenovo
 * @version $Id: AppleFactory.java, v 0.1 2014年9月20日 下午9:20:25 Lenovo Exp $
 */
public class AppleFactory implements Factory {

    /**
     * @see com.cathy.demo.pattern.FactoryMethod.Factory#produce()
     */
    public Fruits produce() {
        return new Apple("红富士");
    }

}
/**
 *
 * @author Lenovo
 * @version $Id: Client.java, v 0.1 2014年9月20日 下午9:21:23 Lenovo Exp $
 */
public class Client {

    /**
     *
     * @param args
     */
    public static void main(String[] args) {
        Fruits apple = new AppleFactory().produce();
        apple.getName();
        Fruits orange = new OrangeFactory().produce();
        orange.getName();
    }

}

 

 

 

 

2
7
分享到:
评论

相关推荐

    【Java设计模式-源码】Factory Method Pattern in Java: 使用多态制造增强灵活性

    学习Java中的工厂方法模式,探索示例、用途、好处以及它如何增强代码的灵活性和可维护性。 **二、别名** * Virtual Constructor **三、Factory Method设计模式的意图** 使用工厂方法模式定义一个用于创建对象的...

    java设计模式---诙谐易懂版

    例如,代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式(Factory Method Pattern)、抽象工厂模式(Abstract Factory Pattern)、适配器模式(Adapter Pattern)、模板方法模式(Template ...

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    这里我们将深入探讨三种常见的Java设计模式:单例(Singleton)、工厂方法(Factory Method)和抽象工厂(Abstract Factory)。 **单例模式(Singleton)** 单例模式确保一个类只有一个实例,并提供一个全局访问点...

    JAVA设计模式-chm版

    Java设计模式是软件开发中的一种最佳实践,它总结了在解决特定问题时程序员们经常采用的有效方法。这个“JAVA设计模式-chm版”资源显然包含了关于Java设计模式的详细信息,便于理解和应用。设计模式是对常见问题的...

    设计模式-工厂方法代码

    在给定的“设计模式-工厂方法代码”文件中,我们可以深入探讨工厂方法这一特定的设计模式,以及它在Java编程中的应用。 工厂方法(Factory Method)是创建型设计模式之一,属于行为模式。它的主要作用是定义一个...

    Java设计模式-图解-附代码

    **1.1 工厂方法(Factory Method)** 工厂方法模式是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪个类。这种模式将实例化延迟到子类,使得系统更加灵活,易于扩展。 **适用场景**: - ...

    JAVA设计模式---100%推荐

    创建型模式涉及对象的实例化过程,如单例(Singleton)、工厂方法(Factory Method)和抽象工厂(Abstract Factory)。结构型模式关注如何将类或对象组合成更大的结构,比如适配器(Adapter)、装饰器(Decorator)...

    JAVA设计模式-day2.pdf

    JAVA设计模式-day2,请的行业大能讲得课程,涉及:创建模式(5种: 1、 工厂方法模式(Factory Method); 2、 抽象工厂模式; 3、 单例模式(Singleton) • 4、 建造者模式(Builder); 5、 原型模式(Prototype...

    JAVA设计模式-设计模式公司出品

    JAVA设计模式是编程领域中非常重要的概念,它为软件开发人员提供了在特定情境下解决常见问题的模板。设计模式公司出品的《JAVA设计模式》书籍,详细介绍了多种设计模式,适合不同水平的程序员学习和使用。 首先,...

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

    【Java设计模式之工厂模式Factory】是面向对象编程中一种重要的设计模式,它提供了一种创建对象的最佳方式。工厂模式的主要思想是将对象的创建过程封装起来,使得创建过程独立于使用过程,使得代码更加灵活,易于...

    设计模式之“工厂方法模式[Factory Method Pattern]”

    今天我们要探讨的是设计模式中的一个经典成员——工厂方法模式(Factory Method Pattern)。工厂方法模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。 ### 一、什么是工厂方法模式? 工厂方法模式...

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

    2. **工厂方法模式**(Factory Method Pattern):相比简单工厂模式,工厂方法模式将对象的创建委托给子类,使得核心工厂类更加抽象,不涉及具体产品的创建。这提高了系统的扩展性。例如: ```java public abstract...

    JAVA设计模式--入门

    3. 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。 4. 抽象工厂模式(Abstract Factory):提供一个接口,用于创建相关或依赖对象的家族,而无需指定它们的具体类。 5. ...

    java设计模式----源代码

    Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可读性、可维护性和可扩展性。本压缩包包含的源代码涵盖了多个经典的设计模式,接下来将对这些模式进行详细介绍。 1....

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

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

Global site tag (gtag.js) - Google Analytics