设计模式之简单工厂模式
来源:互联网 发布:灯光编程教学视频 编辑:程序博客网 时间:2024/05/01 16:52
简单工厂模式的作用:用一个工厂类,来负责创建实例对象
我通过一个简单的模拟计算器的功能来说明简单工厂模式的使用:
创建一个Operation类,这个类作为基类,提供两个变量用来接收我们的输入参数,提供一个用来返回计算结果的方法
public class Operation {private Double numA;private Double numB;public Double getNumA() {return numA;}public void setNumA(Double numA) {this.numA = numA;}public Double getNumB() {return numB;}public void setNumB(Double numB) {this.numB = numB;}public Double getResult(){Double result = 0.0;return result;}}
创建加、减、乘、除四个基本的计算方法的类,继承Operation类:
/** * 加法类 * @author thinkpad * */class OperationAdd extends Operation{@Overridepublic Double getResult() {Double result = 0.0;result = getNumA()+getNumB();return result;}}/** * 减法类 * @author thinkpad * */class OperationSub extends Operation{@Overridepublic Double getResult() {Double result = 0.0;result = getNumA()-getNumB();return result;}}/** * 乘法类 * @author thinkpad * */class OperationMul extends Operation{@Overridepublic Double getResult() {Double result = 0.0;result = getNumA()*getNumB();return result;}}/** * 除法类 * @author thinkpad * */class OperationDiv extends Operation{@Overridepublic Double getResult() {Double result = 0.0;if(getNumB()==0){throw new RuntimeException("除数不能为0");}result = getNumA()/getNumB();return result;}}接下来创建工厂类,用来负责创建不同运算的对象:
public class CreateFactory {public static Operation createFactory(String operate){Operation oper = null;if(operate.equals("+")){oper = new OperationAdd();}else if(operate.equals("-")){oper = new OperationSub();}else if(operate.equals("*")){oper = new OperationMul();}else if(operate.equals("/")){oper = new OperationDiv();}return oper;}public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入数字A");Double numA = input.nextDouble();System.out.println("请输入操作");String oper = input.next();System.out.println("请输入数字B");Double numB = input.nextDouble();Operation create = new Operation();create =CreateFactory.createFactory(oper); //根据我们的操作从工厂类中创建对应的实例对象create.setNumA(numA);create.setNumB(numB);double result = create.getResult();System.out.println(numA+" "+oper+""+numB+"="+result);}}
- 设计模式 之简单工厂+ 工厂模式
- 设计模式之简单工厂设计模式
- 设计模式之简单工厂模式,工厂模式,策略模式
- 设计模式 之 简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂.
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- (经典C++面试题)指针、双指针、内存分配
- 套接字和套接口
- 基于TCP的文件传输
- C#指针- unsafe与fixed
- C#指针- 常用手段
- 设计模式之简单工厂模式
- JAVA数组对象排序维护
- Android---->Allapps加载流程详解【AndroidICS4.0——>Launcher系列五】
- Linq Expression 值得注意
- c++计时器
- QT 软键盘
- map下统计单词出现的地方
- 设计模式——34、观察者模式
- Gallery2中Menu的分析