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