`
zhangwei_david
  • 浏览: 468497 次
  • 性别: 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常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

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

    JAVA设计模式-day2.pdf

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

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

    2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法,就是将简单工厂模式看为工厂方法模式的一种特例,两个归为一类。下面是使用...

    java版本二十三种设计模式.zip

    - 工厂方法模式(Factory Method) - 抽象工厂模式(Abstract Factory) - 单例模式(Singleton) - 建造者模式(Builder) - 原型模式(Prototype) - 代理模式(Proxy) - 适配器模式(Adapter) - 装饰器模式(Decorator...

    在Java中应用设计模式-FactoryMethod

    在设计模式中,FactoryMethod也是比较简单的一个,但应用非常广泛,EJB,RMI,COM,CORBA,Swing中都可以看到此模式的影子,它是最重要的模式之一.在很多地方我们都会看到xxxFactory这样命名的类,那么,什么是FactoryMethod,...

    各个设计模式的介绍Factory ,Builder

    各个设计模式的介绍,非常不错 Java与设计模式 设计模式之Factory -工厂模式设计模式之FACTORY METHOD -工厂模式設計模式之Builder -建造模式

    设计模式 t02FactoryMethod

    设计模式 t02FactoryMethod

    [Java设计模式(第2版)(Design.Patterns.in.Java).John.Metsker

    第16章 工厂方法(factory method)模式 141 第17章 抽象工厂(abstract factory)模式 148 第18章 原型(prototype)模式 158 第19章 备忘录(memento)模式 163 第20章 操作型模式介绍 176 第21章 模板方法(template ...

    Java高手真经 - Java Web系统设计与架构 源代码(一)设计模式

    pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/abstractfactory //11.2抽象工厂模式 pattern/src/creation/singleton //11.3单例模式 pattern/src/creation/builder //11.4建造者...

    java 简单工厂模式 源代码

    从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...

    java设计模式教程+源代码

    FactoryMethod ( 工厂方法 ) Singleton ( 单态模式 ) Builder ( 建造者模式 ) Prototype ( 原型模式 ) Adapter ( 适配器模式 ) Bridge ( 桥接模式 ) Composite ( 组合模式 ) Decorator ( 装饰模式 ) Facade ...

    JAVA工厂模式

    GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。将简单工厂模式(Simple Factory)看为工厂方法模式的一种特例,两者归为一类。 两者皆可,在...

    Java面试 java设计模式整理 单例、工厂、策略等 面试使用,学习使用

    java的设计模式大体上分为三大类: 2 设计模式遵循的原则有6个: 2 1. 工厂模式(Factory Method) 2 2. 抽象工厂模式(Abstract Factory) 3 3. 单例模式(Singleton) 4 4.建造者模式(Builder) 4 5. 原型模式...

    java设计模式期末考试选择题100道

    适合Java设计模式期末考试选择题复习,形式如下: 10.(单选题)Facade(外观)模式的意图是 正确答案: A A.希望简化现有系统的使用方法,你需要定义自己的接口 B.将一个无法控制的现有对象与一个特定借口相匹配。 C....

    CoreJava-DesignPattern

    创意设计模式 -- Abstract Factory - Done -- Builder - Done -- Factory Method -- Object Pool -- Prototype - Done -- Singleton - Done 结构设计模式 -- Adapter -- Bridge -- Composite -- Decorator - Done ...

    java设计模式CatalogDAOFactory是典型的工厂方法

    工厂模式中有: 工厂方法(Factory Method) 抽象工厂(Abstract Factory). 这两个模式区别在于需要创建对象的复杂程度上。如果我们创建对象的方法变得复杂了,如上面工厂方法中是创建一个对象Sample,如果我们还有新的...

    研磨设计模式-part2

    第6章 工厂方法模式(Factory Method) 第7章 抽象工厂模式(Abstract Factory) 第8章 生成器模式(Builder) 第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 ...

    研磨设计模式-part4

    第6章 工厂方法模式(Factory Method) 第7章 抽象工厂模式(Abstract Factory) 第8章 生成器模式(Builder) 第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 ...

    研磨设计模式-part3

    第6章 工厂方法模式(Factory Method) 第7章 抽象工厂模式(Abstract Factory) 第8章 生成器模式(Builder) 第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 ...

Global site tag (gtag.js) - Google Analytics