本文共 2292 字,大约阅读时间需要 7 分钟。
简单工厂模式又称静态工厂模式。属于创建型模式,但不属于23中GOF设计模式之一。
简单工厂模式,即通过专门定义一个工厂类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
该程序主要通过模拟计算器的功能实现。
1、创建共同父类
public class Operation { private int numberA; private int numberB; public int getNumberA() { return numberA; } public void setNumberA(int numberA) { this.numberA = numberA; } public int getNumberB() { return numberB; } public void setNumberB(int numberB) { this.numberB = numberB; } public int getResult(){ int result = 0; return result; }}
2、创建基于父类的子类
2.1 加法类
public class OperationAdd extends Operation { @Override public int getResult() { int result = 0; result = super.getNumberA() +super.getNumberB(); return result; }}
2.2 减法类
public class OperationSub extends Operation { @Override public int getResult() { int result = 0; result = super.getNumberA() - super.getNumberB(); return result; }}
2.3 乘法类
public class OperationMult extends Operation { @Override public int getResult() { int result = 0; result = super.getNumberA() * super.getNumberB(); return result; }}
2.4 除法类
public class OperationDiv extends Operation { @Override public int getResult() { int result = 0; try { result = super.getNumberA() / super.getNumberB(); }catch (Exception e){ System.out.println("除数不能为0."); } return result; }}
3、创建工厂类
public class OperationFactory { public static Operation createOperate(String operateType){ Operation operation = null; switch (operateType){ case "+": operation = new OperationAdd(); break; case "-": operation = new OperationSub(); break; case "*": operation = new OperationMult(); break; case "/": operation = new OperationDiv(); break; } return operation; }}
4、测试
public class Test { public static void main(String[] args) { Operation oper = OperationFactory.createOperate("+"); oper.setNumberA(50); oper.setNumberB(10); System.out.println(oper.getResult()); }}
注:参考文献《大话设计模式》程杰著。
转载地址:http://aklii.baihongyu.com/