设计模式之简单工厂模式

本文介绍了如何通过创建抽象类Operation和其子类如AddOperation和SubOperation来封装业务逻辑,以及使用工厂类FactoryOperation实现运算符的动态获取,从而在客户端解耦计算和界面,方便代码扩展和维护。
摘要由CSDN通过智能技术生成

使用场景:使用单独的一个类做创造实例的过程,对业务计算,界面进行解耦,添加操作只需要添加新的类继承Operation类,并在工厂类中添加新的操作就可以,不用修改其他操作。
样例代码:

//  算子类   业务逻辑和界面逻辑分开,对业务进行封装 降低之间耦合度,使代码更容易维护或扩展
abstract public class Operation {
  abstract public Double  operate(double a,double b);
}
//继承算子类,实现具体加法的功能
public class AddOperation extends Operation{
    @Override
     public Double operate(double a, double b) {
        return a+b;
    }
}
//继承算子类,实现具体减法的功能
public class SubOperation extends Operation{
    @Override
    public Double operate(double a, double b) {
        return a-b;
    }
}
//工厂类   
public class FactoryOperation {
   private  static Operation  ope = null;

    public static Operation getOpe(String opeS) {
        switch (opeS){
            case "+":
             ope =  new AddOperation();
             break;
            case "-":
                ope = new SubOperation();
                break;
        }
        return ope;
    }
}
// 客户段类
public class OperationClient {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个值:");
        double a = scanner.nextDouble();
        System.out.println("请输入第二个值:");
        double b = scanner.nextDouble();
        System.out.println("请输入运算符号:");
        String opr = scanner.next();
        System.out.println("结果是?");
        Operation operation = FactoryOperation.getOpe(opr);
        Double result = operation.operate(a, b);
        System.out.println("结果是:" + result);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值