概述
设计模式1—简单工厂模式
- 描述
- 代码
描述
学习笔录,不足之处大神多多指教。
简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。
代码
计算器功能
1.父类
public interface Operation {
/**
* 获取结果
*
* @param num1
* @param num2
* @return
*/
BigDecimal getResult(BigDecimal num1, BigDecimal num2) throws Exception;
}
2.加、减、乘、除
public class OperationAdd implements Operation {
@Override
public BigDecimal getResult(BigDecimal num1, BigDecimal num2) {
return num1.add(num2);
}
}
public class OperationSub implements Operation {
@Override
public BigDecimal getResult(BigDecimal num1, BigDecimal num2) {
return num1.subtract(num2);
}
}
public class OperationMul implements Operation {
@Override
public BigDecimal getResult(BigDecimal num1, BigDecimal num2) {
return num1.multiply(num2);
}
}
public class OperationDiv implements Operation {
@Override
public BigDecimal getResult(BigDecimal num1, BigDecimal num2) throws Exception {
if (num2.compareTo(new BigDecimal(0)) == 0) {
throw new Exception("除数不能为0");
}
return num1.divide(num2, 8, BigDecimal.ROUND_HALF_DOWN);
}
}
3、工厂
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;
}
return operation;
}
}
3、调用
public class SimpleFactory {
public static void main(String[] args) throws Exception {
Operation operation = null;
operation = OperationFactory.createOperate("+");
System.out.println(operation.getResult(new BigDecimal(11), new BigDecimal(12)));
operation = OperationFactory.createOperate("-");
System.out.println(operation.getResult(new BigDecimal(11), new BigDecimal(12)));
operation = OperationFactory.createOperate("*");
System.out.println(operation.getResult(new BigDecimal(11), new BigDecimal(12)));
operation = OperationFactory.createOperate("/");
System.out.println(operation.getResult(new BigDecimal(11), new BigDecimal(12)));
}
}
小心上面代码中的 Bug;我只知道这些代码是正确的,但没有试过。
最后
以上就是舒心未来为你收集整理的大话设计模式-笔录1-简单工厂模式的全部内容,希望文章能够帮你解决大话设计模式-笔录1-简单工厂模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复