1、    将各个功能分别封装成类,继承父类;然后建立一个工厂类,依赖于父类,在工厂类中,根据不同情况,用不同的子类实例化父类对象,从而执行相应的子类操作。

    例如:    父类为运算类,加法类、减法类、乘法类以及除

法类分别是运算类的4个子类;建立工厂类依赖于运算类,其中有一个运算函数,将运算类对象初始化为空,如果函数的参数为“+”,则用加法类实例化运算类对象,如果函数的参数为“-”,则用减法类实例化运算类对象,依次类推。最后返回运算类对象。/

2、结构图如下:

大话设计模式-----简单工厂模式

 

3、实现代码如下

class Operation{
    public  double numberA = 0;
    public double numberB = 0;
    public double getNumberA() {
        return numberA;
    }
    public void setNumberA(double numberA) {
        this.numberA = numberA;
    }
    public double getNumberB() {
        return numberB;
    }
    public void setNumberB(double numberB) {
        this.numberB = numberB;
    }
    public double getResult(){
        double result = 0;
        return result;
    }
    
}
class OperationAdd extends Operation{
    public double getResult(){
        double result = numberA + numberB;
        return result;
    }
    
}

class OperationSub extends Operation{
    public double getResult(){
        double result = numberA - numberB;
        return result;
    }
    
}

class OperationMul extends Operation{
    public double getResult(){
        double result = numberA * numberB;
        return result;
    }
    
}

class OperationDiv extends Operation{
    public double getResult(){
        double result = numberA / numberB;
        return result;
    }
    
}
class OperationFactory{
    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;
        
        }
        return oper;
    }
}
public class Main5{
    public static void main(String [] args){
        Operation oper;
        oper = OperationFactory.createOperate("+");
        oper.numberA = 1;
        oper.numberB = 1;
        double result = oper.getResult();
        System.out.println(result);
        
    }
    
}

运行结果:

2.0

相关文章: