java设计模式之工厂方法模式
2017-02-04 21:04
393 查看
工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
烤鱼店之工厂模式类图:
FactoryFish中的Fish实例化延迟到子类NianYuFactory,JiYuFactory中来实例化。这是工厂方法模式和简单工厂模式的区别。
Fish类代码实现:
NianYu类代码实现:
JiYu类代码实现:
FactoryFish类代码实现:
NianYuFactory类代码实现:
JiYuFactory类代码实现:
KaoYu类代码实现:
FishTest类代码实现:
运行结果:
烤鱼店之工厂模式类图:
FactoryFish中的Fish实例化延迟到子类NianYuFactory,JiYuFactory中来实例化。这是工厂方法模式和简单工厂模式的区别。
Fish类代码实现:
public class Fish { String name = "Unknow name"; }
NianYu类代码实现:
public class NianYu extends Fish{ public NianYu() { // TODO Auto-generated constructor stub name = "鲶鱼"; System.out.println("一条烤"+name); } }
JiYu类代码实现:
public class JiYu extends Fish{ public JiYu() { // TODO Auto-generated constructor stub name = "鲫鱼"; System.out.println("一条烤"+name); } }
FactoryFish类代码实现:
public abstract class FactoryFish { public abstract Fish createFish(); }
NianYuFactory类代码实现:
public class NianYuFactory extends FactoryFish{ @Override public Fish createFish() { // TODO Auto-generated method stub return new NianYu(); } }
JiYuFactory类代码实现:
public class JiYuFactory extends FactoryFish{ @Override public Fish createFish() { // TODO Auto-generated method stub return new JiYu(); } }
KaoYu类代码实现:
public class KaoYu { FactoryFish factoryFish; public KaoYu(FactoryFish factoryFish){ this.factoryFish =factoryFish; } public void orderFish(){ factoryFish.createFish(); } }
FishTest类代码实现:
public class FishTest { public static void main(String[] args){ FactoryFish factoryFish = new JiYuFactory(); KaoYu kaoYu = new KaoYu(factoryFish); kaoYu.orderFish(); FactoryFish factoryFish2 = new NianYuFactory(); KaoYu kaoYu2 = new KaoYu(factoryFish2); kaoYu2.orderFish(); } }
运行结果:
一条烤鲫鱼 一条烤鲶鱼
相关文章推荐
- java设计模式连载(1)---工厂方法模式
- Java设计模式之工厂方法模式
- Java设计模式之工厂方法模式
- JAVA设计模式学习5——工厂方法模式
- Java设计模式 - 工厂方法模式(Factory Method)
- java设计模式---Factory Method Pattern---工厂方法模式
- 浅谈 java 设计模式--工厂方法模式(Factory Method pattern)
- java设计模式——工厂方法模式
- JAVA设计模式 —工厂方法模式(Factory Method)
- 【Java设计模式】之工厂方法模式
- java中的设计模式(二)--工厂方法模式 反射机制
- Java设计模式之工厂方法模式
- Java设计模式-工厂方法模式
- JAVA设计模式--工厂方法模式
- java 设计模式 学习笔记 (2) - 工厂方法模式
- 设计模式之—工厂方法模式(FactoryMethod)-Java实现
- JAVA设计模式三--factorymethod(工厂方法模式)
- Head First Java 设计模式——工厂方法模式
- Java设计模式之工厂方法模式
- JAVA设计模式☞☞工厂方法模式和抽象工厂模式区别