工厂模式-三种类型
来源:互联网 发布:ubuntu相连设备ip 编辑:程序博客网 时间:2024/05/29 07:52
1.普通工厂模式
可以封装不同的实现,统一为一个方法,但是需要传不同的参数。使得程序容易维护和扩展。
Test.java
package cn.test.factorymethod;public class Test {public static void main(String[] args) {//实例化工厂Factory factory = new Factory();Print print = factory.createWindow("HP");print.print();Print print2 = factory.createWindow("EPSON");print2.print();}}
Factory.java
package cn.test.factorymethod;public class Factory { public Print createWindow (String type) { if(type.equals("HP")) { return new PrintHP(); } else if(type.equals("EPSON")) { return new PrintEPSON(); } else{ return new PrintHP(); } } }Print.java
package cn.test.factorymethod;public abstract class Print { public abstract void print(); }PrintEPSON.java
package cn.test.factorymethod;public class PrintEPSON extends Print { @Override public void print() { System.out.println("I'm EPSON"); }}PrintHP.java
package cn.test.factorymethod;public class PrintHP extends Print { @Overridepublic void print() { System.out.println("I'm HP");}}
返回结果:
I'm EPSON
I'm HP
2.多个工厂模式
在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象
修改Factory.java类如下:
package cn.test.factorymethod;public class Factory { public Print epson(){ return new PrintEPSON(); } public Print hp(){ return new PrintHP(); } }修改Test.java类如下:
package cn.test.factorymethod;public class Test {public static void main(String[] args) {// 实例化工厂Factory factory = new Factory();Print print = factory.epson();print.print();Print print2 = factory.hp();print2.print();}}
返回结果:
I'm EPSON
I'm HP
3.静态工厂模式
将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可。
修改Factory.java类如下:
package cn.test.factorymethod;public class Factory { public static Print epson(){ return new PrintEPSON(); } public static Print hp(){ return new PrintHP(); } }
修改Test.java类如下:
package cn.test.factorymethod;public class Test {public static void main(String[] args) {Print print = Factory.epson();print.print();Print print2 = Factory.hp();print2.print();}}
返回结果:
I'm EPSON
I'm HP
1 0
- 工厂模式-三种类型
- 设计模式三种类型
- 设计模式的三种类型
- 设计模式--六大原则与三种类型
- 创建型模式-工厂三姐妹
- 创建型模式-工厂三姐妹
- 工厂模式三剑客
- 三、抽象工厂模式
- 三种工厂模式
- 三种工厂模式
- 三、工厂方法模式
- 工厂模式三姐妹
- 工厂三大模式
- (三)抽象工厂模式
- 三大工厂模式
- 三种工厂模式
- 三种工厂模式
- 三类工厂模式
- TCP、UDP区别
- ios scrollView联动处理-左边悬停、上面悬停
- 开始学习计算几何啦
- java使用正则表达式提取方括号中内容
- 卡尔曼滤波_2(图解)
- 工厂模式-三种类型
- jpeg图像的压缩与解码
- C++24、stl——queue 队列
- android上传下载系列:秒传原理分析(草稿)
- Cocopods 安装坑
- leetcode_c++:Letter Combinations of a Phone Number(017)
- AlertDialog自定义样式
- [C++] 经典练习题与解析(一)
- 还是快排