[设计模式]简单工厂模式
来源:互联网 发布:淘宝怎么搜发票 编辑:程序博客网 时间:2024/06/05 19:27
抽象工厂模式(abstract factory)
以简单的算术运算为例:
// 运算类public abstract class Operation {public abstract int getResult(int numA, int numB);}
// 加法运算类public class OperationAdd extends Operation{@Overridepublic int getResult(int numA, int numB) {return numA + numB;}}// 减法运算类public class OperationSub extends Operation{@Overridepublic int getResult(int numA, int numB) {return numA - numB;}}// 乘法运算类public class OperationMul extends Operation{@Overridepublic int getResult(int numA, int numB) {return numA * numB;}}// 除法运算类public class OperationDiv extends Operation{<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public int getResult(int numA, int numB) {<span style="white-space:pre"></span>if (numB == 0)<span style="white-space:pre"></span>throw new ArithmeticException("/ by zero");<span style="white-space:pre"></span>return numA / numB;<span style="white-space:pre"></span>}}
// 运算工厂类public class OperationFactory {public static Operation createOperate(String operate) {Operation operation = null;switch (operate) {case "+":operation = new OperationAdd();break;case "-":operation = new OperationSub();break;case "*":operation = new OperationMul();break;case "/":operation = new OperationDiv();break;default:break;}return operation;}}
// 测试类public class Test {public static void main(String[] args) {Operation add = OperationFactory.createOperate("+");System.out.println("1 + 2 = " + add.getResult(1, 2));Operation sub = OperationFactory.createOperate("-");System.out.println("1 - 2 = " + sub.getResult(1, 2));Operation mul = OperationFactory.createOperate("*");System.out.println("1 * 2 = " + mul.getResult(1, 2));Operation div = OperationFactory.createOperate("/");System.out.println("1 / 2 = " + div.getResult(1, 2));}}
添加新的运算类时,只需要增加新的运算类以及修改运算工场类即可,不需要其他与之不相关的类,可以减少错误的修改,避免发生巨大的损失;
修改某个运算类时,直接修改运算类即可,不需要修改工厂类以及其他类,有效的降低了耦合度
0 0
- 简单工厂设计模式
- 设计模式-----简单工厂
- 简单工厂设计模式
- 设计模式:简单工厂
- 设计模式 - 简单工厂
- 设计模式 简单工厂
- 【设计模式】【简单工厂】
- 简单工厂设计模式
- 简单工厂设计模式
- 设计模式--简单工厂
- 简单工厂设计模式
- 简单工厂设计模式
- 设计模式------------简单工厂
- 设计模式--简单工厂
- 简单工厂设计模式
- 设计模式---------简单工厂
- 设计模式--简单工厂
- 简单工厂设计模式
- Spring Transaction属性之Propagation
- JSP(java服务器页面)
- HDU 4786--Fibonacci Tree【并查集,最小生成树】
- 海量数据处理面试题总结
- Spring学习笔记之一
- [设计模式]简单工厂模式
- 手机端 一个自适应页面的 四叶草 五功能的简单页面
- Vs2005 Vs 2010 下安装破解visual assist x
- JavaScript中的隐式类型转换
- 第二章作业51.6(输出1000年(包括1000年)到1999年之间的所有闰年,要求每三个一行,分行输出。)
- Jasmine 语法
- JavaScript语言精粹【糟粕、毒瘤】
- 女人有梦还会孤单吗?
- Intent中的四个重要属性——Action、Data、Category、Extras