设计模式Java之工厂方法。

1,工厂方法:

使用一个工厂的方法来创建产品。

1 package WHP;
2 //产品依赖于抽象
3 public interface IRunable {
4     public void Run();
5 }
1 package WHP;
2 //具体实现
3 public class Car implements IRunable {
4     public void Run(){
5         System.out.println("Car running.");
6     }
7 }
1 package WHP;
2
3 public class Bus implements IRunable {
4     public void Run() {
5         System.out.println("Bus running.");
6     }
7 }
 1 package WHP;
 2 //生产产品的工厂
 3 public class AutoFactory {
 4     public IRunable CreateAuto(String auto) throws Exception {
 5         if (auto == "Car") {
 6             return new Car();
 7         } else if (auto == "Bus") {
 8             return new Bus();
 9         } else {
10
11             throw new Exception("Incorrect auto type");
12         }
13     }
14 }
package WHP;

import java.util.*;
import java.io.*;
//使用模式的代码。
public class JTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try
        {
        AutoFactory fac=new AutoFactory();
        IRunable a=fac.CreateAuto("Car");
        IRunable b=fac.CreateAuto("Bus");

        a.Run();
        b.Run();
        }
        catch(Exception ex)
        {
            System.out.println(ex.getMessage());
        }
    }
}

设计模式Java之工厂方法。,布布扣,bubuko.com

时间: 2024-11-25 17:53:18

设计模式Java之工厂方法。的相关文章

设计模式--10、工厂方法和抽象工厂模式

[转载]Java 之工厂方法和抽象工厂模式 1. 概念 工厂方法:一抽象产品类派生出多个具体产品类:一抽象工厂类派生出多个具体工厂类:每个具体工厂类只能创建一个具体产品类的实例. 即定义一个创建对象的接口(即抽象工厂类),让其子类(具体工厂类)决定实例化哪一个类(具体产品类).“一对一”的关系. 抽象工厂:多个抽象产品类,派生出多个具体产品类:一个抽象工厂类,派生出多个具体工厂类:每个具体工厂类可创建多个具体产品类的实例. 即提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们的具体的类.

Java设计模式3:工厂方法模式

工厂方法模式 工厂方法模式是类的创建模式.工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中. 工厂方法模式 工厂方法模式是对简单工厂模式进一步抽象的结果. 假如是不使用反射的工厂方法模式,那么所有的if... else if...else都放在工厂类中,势必造成工厂类的无限臃肿 这时候就需要工厂方法模式来处理这个问题了.工厂方法模式中,核心的工厂类不再负责所有对象的创建,而是将具体的创建工作交给子类去做.这个类则摇身一变变成了一个抽象工厂角色,仅仅负责给出具体工厂子

java设计模式--创建模式--工厂方法

工厂方法定义: 1 工厂方法 2 3 概述 4 定义一个用于创建对象的接口,让子类决定实例化哪一个类.FactoryMethod使一个类的实例化延迟到其子类. 5 6 适用性 7 1.当一个类不知道它所必须创建的对象的类的时候. 8 9 2.当一个类希望由它的子类来指定它所创建的对象的时候. 10 11 3.当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候. 12 参与者 13 1.Product 14 定义工厂方法所创建的对象的接口. 1

深入浅出设计模式 ------ Factory Method(工厂方法)

1. 定义: 一个用于创建对象的接口, 让子类决定实例化哪个类. 工厂方法使一个类的实例化延迟到子类. 2. 结构 3. 参与者(如上图) Product ---- 定义工厂方法所创建的对象接口 ConcreteProduct ---- 实现Product接口 Creator ---- 声明工厂方法, 该方法返回一个Product类型的对象 ConcreteCreator ---- 重新定义工厂方法返回一个ConcreteProduct实例 4. 实现 (1) 特例: 简单工厂(Simple F

设计模式2:工厂方法模式

定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类. 类型:创建类模式 类图: 工厂方法模式代码 [java] view plaincopy interface IProduct { public void productMethod(); } class Product implements IProduct { public void productMethod() { System.out.println("产品"); } } int

大话设计模式C++版——工厂方法模式

工厂方法模式是以简单工厂模式为基础的,如果未了解简单工厂模式的同学可先浏览<大话设计模式C++版--简单工厂模式>.在简单工厂模式中,提到过简单工厂模式的缺陷,即违背了开发-封闭原则,其主要原因是由于switch的判断结构的使用,使修改或添加新的对象时需要改动简单工厂类的代码,不符合开放-封闭原则,那么工厂方法模式会在那方面有所改进呢?我们仍以简单工厂模式中加减法计算器为例. 1.保持简单工厂模式的 IOperation 接口和实现对象(COperation_Add 和 COperation_

设计模式学习笔记--工厂方法模式

学习过简单工厂模式,感觉很好用.在创建对象时,可以将复杂的初始化操作从客户端分离出来,简化客户端代码.大大的减少了代码修改的难度.而且可以通过参数不同,创建不同的对象. 但是简单工厂模式也有一些弊端,违背了开放--封闭原则.即如果我们增加了一个产品,对应的工厂也要进行修改,即switch---case中要新增加一些分支条件,不利于扩展.所以就有了下面的工厂方法模式: 工厂方法模式:定义了一个用于创建对象的接口,子类决定实例化哪一个类,工厂方法模式使一个类的实例化延迟到子类. // 设计模式Dem

【创建型设计模式】-简单工厂方法设计模式

单词:Creator [kri?et?] 创造者,创作者;  Product [?prɑd?kt]  产品; 结果; 乘积; 作品; factory [?f?kt?ri] 工厂,制造厂; <古>代理店; 简单工厂方法设计模式的设计图纸 Creator 是一个工厂类, 根据"四人帮"的软件设计模式的记号,图中的右半部分的类叫做产品类,由接口 Product 与 具体的实现类产品类ConcreteProduct 组成. 产品类实际上代表被创建的类结构,而Creator 类 是简

设计模式C++实现——工厂方法模式

模式定义: 工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个. 工厂方法让类把实例化推迟到子类. 模式结构: Creator是一个类,它实现了全部操纵产品的方法,但不实现工厂方法. Creator的全部子类都必须实现工厂方法(factoryMethod()),以实际制造出产品. 全部的产品必须实现Product基类.这样一来使用这些产品的类就能够引用这个基类,而不是派生类. 举例: 披萨店希望可以开一些加盟店. 经营者希望确保加盟店运营的质量,所以希望这些店都使用能经过实践