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