1. 简单工厂模式
举例说明:实现一个计算器的功能
先上类图,如下:
首先是一个运算类(Operation),它主要包含一个方法(getResult()),用于计算所得结果,然后加减乘除分别继承它,这样便于扩展,如果增加一个乘方的算法,我们只要增加一个子类去继承Operation即可。再增加一个工厂类(OperationFactory) ,用来实现创建实例的过程。
几个类的主要代码如下:
运算类
package main.mode.jdgcms;
public abstract class Operation {
public abstract double getResult(double numberA,double numberB);
}
加法类
package main.mode.jdgcms;
public class OperationAdd extends Operation{
@Override
public double getResult(double numberA, double numberB) {
return numberA + numberB;
}
}
减法类
package main.mode.jdgcms;
public class OperationSub extends Operation{
@Override
public double getResult(double numberA, double numberB) {
return numberA - numberB;
}
}
乘法类
package main.mode.jdgcms;
public class OperationMul extends Operation{
@Override
public double getResult(double numberA, double numberB) {
return numberA * numberB;
}
}
除法类
package main.mode.jdgcms;
public class OperationDiv extends Operation{
@Override
public double getResult(double numberA, double numberB) {
if(numberB==0) {
System.out.println("被除数不能为0");
}
return numberA/numberB;
}
}
工厂类
package main.mode.jdgcms;
public class OperationFactory {
public static Operation createOperation(String flag) {
Operation oper = null;