一、模式介绍
简单工厂模式的主要思想是通过一个工厂类根据传入参数的不同构造不同的实体对象,委托给父接口(父类)返回
该模式充分利用了面向对象的封装继承和多态特性,使得系统具有更强的可扩展性、可维护性
要利用该模式,首先应该分析出哪些内容是独立可扩展的,将其封装成产品,然后通过工厂方法创建
二、使用简单工厂模式实现计算器,以支持计算方法的动态扩展
首先,定义一个 Operation 接口
public interface Operation {
int compute(int num1, int num2);
}
定义实现类,(当有新功能需求,增加实现类即可)
public class AddOperation implements Operation {
public int compute(int num1, int num2) {
return num1 + num2;
}}
public class SubOperation implements Operation {
public int compute(int num1, int num2) {
return num1 - num2;
}}
public class DefaultOperation implements Operation{
public int compute(int num1, int num2) {
throw new UnsupportedOperationException();
}}
定义简单工厂,按需创建实体类
public class OperationSimpleFactory {
public static Operation getOperation(String operate) {
Operation opt = null;
switch (operate) {
case "+":
opt = new AddOperation();
break;
case "-":
opt = new SubOperation();
break;
default:
opt = new DefaultOperation();
}
return opt;
}}
测试类
public class Main {
public static void main(String[] args) {
Operation opt = OperationSimpleFactory.getOperation("+");
System.out.println(opt.compute(1, 2));
opt = OperationSimpleFactory.getOperation("-");
System.out.println(opt.compute(1, 2));
}}