设计模式-简单工厂
简单工厂模式是一个集中管理对象创建,并根据条件生成所需类型对象的设计模式,有助于提高代码的复用性和维护性,但可能会导致工厂类过于复杂且违反开闭原则。
抽象提取理论:
- 封装对象创建过程
- 解耦客户端与产品类
- 控制程序扩展性
代码需求:需要实现一个计算器功能,输入运算符号和两个数字进行计算。你应该如何实现呢?
简单工厂实现
代码结构图

- 基类:运算类
- 实现类:加法类,乘法类,减法类,除法类
- 工厂类:简单工厂类
基于代码结构图实现代码,以下代码只创建两个实现类。
基类:
/**
 * 运算类-基类
 */
public abstract class Operation {
    /**
     * 计算方法
     */
    abstract double getResult(double num1,double num2);
}
实现类-加法:
public class Addition extends Operation{
    @Override
    double getResult(double num1, double num2) {
        return num1 +  num2;
    }
}
实现类-减法:
public class Subtraction extends Operation{
    @Override
    double getResult(double num1, double num2) {
        return num1 - num2;
    }
}
工厂类:
public class Factory {
    public Operation createOperate(String str){
        switch (str){
            case "+":
                return new Addition();
            case "-":
                return new Subtraction();
            default:
                return null;
        }
    }
}
客户类:
public class FactoryDemo {
    public static void main(String[] args) {
        // 创建工厂
        Factory factory = new Factory();
        Operation operate = factory.createOperate("+");
        System.out.println("加法计算结果:" + operate.getResult(10, 10));
        Operation operate2 = factory.createOperate("-");
        System.out.println("减法计算结果:" + operate2.getResult(10, 10));
    }
}




![[linux]使用libqrencode库生成二维码数据](https://img-blog.csdnimg.cn/direct/5504a7b4111d445da1f7a51a485e18ae.png)











![[C++] opencv - copyTo函数介绍和使用案例](https://img-blog.csdnimg.cn/direct/9ae2b1ecdafb4414ae263adc0790a0f0.png)


