工厂方法模式
2009-06-14 11:57
225 查看
工厂方法模式和简单工厂模式在结构上的不同是很明显的, 工厂方法模式的核心是一个抽象的工厂类, 而简单工厂模式把核心放在一个具体类上, 工厂方法模式可以允许很多具体工厂类从抽象工厂类中将创建行为继承下来, 从而可以成为简单工厂模式的综合, 进而推广了简单工厂模式.
此模式涉及到抽象工厂角色(汽车厂),具体工厂角色(具体的汽车车间),抽象产品角色(汽车),以及具体产品角色(私车, 公交巴士).
此模式涉及到抽象工厂角色(汽车厂),具体工厂角色(具体的汽车车间),抽象产品角色(汽车),以及具体产品角色(私车, 公交巴士).
package com.deng.DesignPattern.Factory02; interface Car{ public void start(); public void stop(); } class Benz implements Car{ public void start() { System.out.println("Benz开动了! "); } public void stop() { System.out.println("Benz停车了!"); } } class Ford implements Car{ public void start() { System.out.println("Ford开动了!"); } public void stop() { System.out.println("Ford停车了!"); } } class BigBus implements Car{ public void start() { System.out.println("大巴开车了!"); } public void stop() { System.out.println("大巴停车了!"); } } class MiniBus implements Car{ public void start(){ System.out.println("小巴开车了!"); } public void stop(){ System.out.println("小巴停车了!"); } } interface AbstractFactory{ } class CarFactory implements AbstractFactory{ public Car getCar(String type){ Car c = null; try { c = (Car)Class.forName("com.deng.DesignPattern.Factory02."+type).newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return c; } } class BusFactory implements AbstractFactory{ public Car getBus(String type){ Car c = null; try { c = (Car)Class.forName("com.deng.DesignPattern.Factory02."+type).newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return c; } } public class FactoryDemo01 { public static void main(String args[]){ CarFactory cf = new CarFactory(); Car c = null; c = cf.getCar("Ford"); c.start(); c.stop(); BusFactory bf = new BusFactory(); Car c1 = null; c1 = bf.getBus("MiniBus"); c1.start(); c1.stop(); } }
相关文章推荐
- 工厂方法模式
- 设计模式——工厂方法模式(Factory Method)
- 设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
- 工厂模式---工厂方法模式
- 23种设计模式之工厂方法模式
- Head First 设计模式学习——简单工厂方法-工厂方法模式-抽象工厂模式
- C++设计模式——工厂方法模式
- 工厂方法模式
- 1-4 工厂模式(工厂方法模式/抽象工厂模式)
- 工厂方法模式
- 对 桥接模式 的个人理解,以及与 工厂方法模式、建造者模式 的结合运用
- Java 工厂方法模式
- 《大话设计模式》——读后感 (5)雷锋依然在人间?——工厂方法模式
- 24天学会设计模式------工厂方法模式
- 工厂方法模式
- 23种设计模式(2):工厂方法模式
- 工厂方法模式(factory method)c++版本
- 设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
- (五)工厂方法模式
- 大话设计模式笔记(五)——代理模式和工厂方法模式