工厂方法模式
来源:互联网 发布:淘宝客服图片素材 编辑:程序博客网 时间:2024/05/29 04:26
1,什么是工厂方法模式?
定义如下:定义了一个创建对象的接口,但是由子类决定实例化的类是那个。工厂方法让类的实例化推迟到了子类
工厂模式是将使用对象与获取对象解耦,这样就不用将类似new这样的代码硬编码到客户端上。
2,工厂方法一般类图
当客户端需要某个Product,可以利用Factory类的newInstance方法来创建,这样就不用将类似new Train这样代码硬编码到客户端的代码中
3,上面类图实现
Product接口
package com.yy;public interface Product {public void play();}
火车玩具类
package com.yy;public class Train implements Product {@Overridepublic void play() {// TODO Auto-generated method stubSystem.out.println("play train...");}}飞机玩具类
package com.yy;public class AirPlane implements Product{@Overridepublic void play() {// TODO Auto-generated method stubSystem.out.println("play airplane...");}}
工厂接口
package com.yy;public interface Factory {public Product newInstance();}火车工厂类
package com.yy;public class TrainFactory implements Factory {@Overridepublic Product newInstance() {// TODO Auto-generated method stubreturn new Train();}}
飞机玩具工厂类
package com.yy;public class AirPlaneFactory implements Factory {@Overridepublic Product newInstance() {// TODO Auto-generated method stubreturn new AirPlane();}}
测试类
package com.yy;import static org.junit.Assert.*;public class Test {@org.junit.Testpublic void test() {//需要一个火车玩具Product train = getProduct(new TrainFactory());train.play();//需要一个飞机玩具Product airplane = getProduct(new AirPlaneFactory());airplane.play();}public Product getProduct(Factory factory){return factory.newInstance();}}
测试结果
play train...play airplane...
0 0
- 工厂模式 -- 工厂方法
- 工厂模式-工厂方法
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式---工厂方法模式
- 【模式】工厂方法模式
- 工厂方法,抽象工厂模式
- C#工厂模式-工厂方法
- 工厂模式 和工厂方法
- 工厂模式-C-工厂方法
- 工厂模式以及工厂方法
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 工厂模式(简单工厂、工厂方法)
- 简单工厂|工厂方法|抽象工厂模式
- 设计模式-工厂模式(简单工厂模式+工厂方法模式)
- 两个Activity之间 传递 List对象
- java 单例模式
- SQL 中delete、truncate和drop的区别
- ListView 滑动到底部或顶部
- myeclipse中详细配置oracle数据库,mySql数据库(上)
- 工厂方法模式
- hdu 2586 lca-st在线算法
- MyBatis Generator generatorConfig.xml配置详解
- Java中方法名和类名的规范
- hdu 3634 City Planning(矩形切割 )
- 约瑟夫环输出最后一个数字
- 扩展欧几里得算法(2)
- Mac工作环境配置笔记
- How to sign app by android studio