简单工厂模式(Single Factory Pattern)

本文深入讲解了工厂方法设计模式在运算符操作中的应用。通过创建不同的运算子类,如加法、减法、乘法等,实现了运算逻辑的封装与扩展。工厂方法模式通过抽象基类定义了创建对象的接口,而具体的子类则负责实现具体对象的创建过程。
package DesignPattern.FactoryMethodPattern;

public class Operation {

    private double a=0;
    private double b=0;

    public double getA() {
        return a;
    }

    public void setA(double a) {
        this.a = a;
    }

    public double getB() {
        return b;
    }

    public void setB(double b) {
        this.b = b;
    }

    public double getResult(){
        double res=0;
        return res;
    }
}

具体的运算法则类

package DesignPattern.FactoryMethodPattern;

public class OperationAdd extends Operation {


    @Override
    public double getResult() {
        return getA()+getB();
    }
}
package DesignPattern.FactoryMethodPattern;

public class OperationSub extends Operation {

    @Override
    public double getResult() {

        return getA()-getB();
    }
}
package DesignPattern.FactoryMethodPattern;

public class OperationMul extends Operation{


    @Override
    public double getResult() {
        return getA()*getB();
    }
}
package DesignPattern.FactoryMethodPattern;

public class OperationSub extends Operation {

    @Override
    public double getResult() {

        return getA()-getB();
    }
}

规则工厂类

package DesignPattern.FactoryMethodPattern;

public class OperationFactory {

    public static Operation createOperate(String operator){
        Operation opt=null;
        switch (operator){
            case "+":
                opt=new OperationAdd();
                break;
            case "-":
                opt=new OperationSub();
                break;
            case "*":
                opt=new OperationMul();
                break;
            case "/":
                opt=new OperationDiv();
        }
        return opt;
    }
}

客户端

package DesignPattern.FactoryMethodPattern;

public class Client1 {

    public static void main(String[] args){
        Operation op=OperationFactory.createOperate("+");
        op.setA(1.2);
        op.setB(2.2);
        System.out.println(op.getResult());
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值