概述
简单来说,用一个单独的类实例化不同的对象,这就是工厂,比如实现计算器功能,可以根据两个数中间的符号实例化不同的对象,通过多态,返回父类的方式实现计算器。
OperationFactory 工厂类:
public class OperationFactory {
public static void main(String[] args) {
// TODO Auto-generated method stub
Operation oper;
oper = new OperationFactory().createOperate("+");
oper.setNumA(6);
oper.setNumB(2);
System.out.println(oper.GetResult());
}
public static Operation createOperate(String operate){
Operation oper = null;
switch (operate) {// 实例化不同的对象
case "+":
oper = new OperationAdd();
break;
case "-":
oper = new OperationSub();
break;
case "*":
oper = new OperationMul();
break;
case "/":
oper = new OperationDiv();
break;
default:
break;
}
return oper;
}
}
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(){
return 0;
}
}
加减乘除类
class OperationAdd extends Operation {
public double GetResult(){
double result = 0;
result = getNumA() + getNumB();
return result;
}
}
public class OperationSub extends Operation {
public double GetResult(){
double result = 0;
result = getNumA() - getNumB();
return result;
}
}
public class OperationMul extends Operation {
public double GetResult(){
double result = 0;
result = getNumA() * getNumB();
return result;
}
}
public class OperationDiv extends Operation {
public double GetResult(){
double result = 0;
result = getNumA() / getNumB();
return result;
}
}
这样的话,当要增加其他运算,平方,根号,就可以在这个基础上添加类,不用去修改已经写好的类,实现java的三大特性,继承,封装,多态。具有易扩展性,易维护性,复用性,这样的代码灵活性好。
最后
以上就是温婉唇膏为你收集整理的Java设计模式-简单工厂模式的全部内容,希望文章能够帮你解决Java设计模式-简单工厂模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复