概述
需求:实现一个简单的计算器。
简单工厂模式:工厂即实例化所需类的方法,根据传入参数的不同返回不同的实例化方法,即多态的思想。
作用:利于程序扩展,将来要添加一个功能只需要继承父类,重写相应的方法即可。
应用场景:解决如何实例化对象的问题,根据不同的场景实例化不同的对象。
示例代码——使用面向对象的方法实现一个简单的计算器:
只需要输入运算符号,工厂就实例化出合适的对象,通过多态返回父类的方式实现了计算器的效果。
父类Operation:
package com.nss.simplefactory.entity;
/**
* 运算符操作类
*/
public class Operation {
double numberA;
double numberB;
public void setNumberA(double numberA) {
this.numberA = numberA;
}
public void setNumberB(double numberB) {
this.numberB = numberB;
}
public double getResult() throws Exception {
return (double) 0;
}
}
子类之一——加法运算类:
package com.nss.simplefactory.entity;
/**
* 加法运算
*/
public class OperationAdd extends Operation {
@Override
public double getResult() {
return numberA + numberB;
}
}
减法、乘法、除法运算类类似,省略。
Operation工厂类:
package com.nss.simplefactory.entity.factory;
import com.nss.simplefactory.entity.*;
/**
* Operation 实例化工厂类
*/
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;
}
}
简单工厂设计模式测试类:
package com.nss.simplefactory;
import com.nss.simplefactory.entity.Operation;
import com.nss.simplefactory.entity.factory.OperationFactory;
/**
* 简单工厂模式测试类
*/
public class SimpleFactoryPatternTest {
public static void main(String[] args){
Operation operation = OperationFactory.createOperate("+");
operation.setNumberA(1);
operation.setNumberB(2);
try {
System.out.println(operation.getResult());
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上即为简单工厂模式,核心思想就是多态。
代码下载地址:https://gitee.com/nisen6477/design-patterns.git
最后
以上就是文艺天空为你收集整理的简单工厂模式(一)的全部内容,希望文章能够帮你解决简单工厂模式(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复