简单工厂模式
来源:互联网 发布:java调用odata 编辑:程序博客网 时间:2024/06/14 04:37
简单工厂模式
定义:简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。(摘自百度)
本质:简单工厂模式的实质是由一个工厂类根据传入参数,动态决定应该创建哪个产品类(产品类都继承自一个父类或接口的实例)
简单工厂UML类图:
代码实现:
注:产品类只写了加法、减法,添加产品类都是继承Operation类,重写GetResult()方法
运算类:
/** * Created by WFP on 2017/8/10. */public class Operation { private double A = 0; private double B = 0; public double getA() { return A; } public void setA(double a) { A = a; } public double getB() { return B; } public void setB(double b) { B = b; } /** * 取得返回值 * @return */ public double GetResult(){ double result = 0; return result; }}
加法运算类:
/** * 加法运算类 * Created by WFP on 2017/8/10. */public class OperationAdd extends Operation { @Override public double GetResult() { double result =0; result = super.getA() + super.getB(); return result; }}
减法运算类:
/** * 减法运算类 * Created by WFP on 2017/8/10. */public class OperationSub extends Operation { public double GetResult (){ double result = 0; result = super.getA() - super.getB(); return result; }}
简单工厂类:
/** * 简单工厂 * Created by WFP on 2017/8/10. */public class OperationFactory { public static Operation creatOperation(String operation){ Operation oper = null; switch (operation){ case "+": oper = new OperationAdd(); break; case "-": oper = new OperationSub(); break; } return oper; }}
Test类
/** * @Author: WFP * @Time: 2017/8/11 * simpleFactoryMaven */public class factoryTest { @Test public void fun() { //减法 Operation oper1; oper1 = OperationFactory.creatOperation("-"); oper1.setA(8.8); oper1.setB(3.0); Double result1 = oper1.GetResult(); System.out.println(result1); //加法 Operation oper2; oper2 = OperationFactory.creatOperation("+"); oper2.setA(5); oper2.setB(4); Double result2 = oper2.GetResult(); System.out.println(result2); }}
理解:简单工厂模式只要由工厂类传入参数,工厂就实例出合适的对象,通过多态返回父类的方式实现了计算器的结果。
阅读全文
0 0
- 工厂模式-简单工厂
- 工厂模式-简单工厂
- 工厂模式-简单工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 简单工厂和工厂模式
- 简单工厂和工厂模式
- 1,工厂模式--简单工厂
- 简单工厂和工厂模式
- 简单工厂,工厂模式,抽象工厂
- 简单工厂,工厂模式,抽象工厂
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂模式和抽象工厂
- 守护进程
- day13-oracle总结
- Spring整合Quartz浅析
- Kotlin:基本语法篇
- 2017/8/11训练日记(二分)
- 简单工厂模式
- Clock||HDU1209
- 输入5个数(含负数、小数)将它们按由小到大的顺序排列起来
- 并查集!!!
- sublime常用设置
- Git暂存区
- HPU 弱校联萌3 【1411】 QAQ & ORZ 的签到题
- HDU 2017 多校联合训练赛6 1002 6097 Mindis 反演变换 计算几何
- 杭电acm1799 时间复杂度 杨辉三角。。。