Java设计模式之抽象工厂模式

来源:互联网 发布:java串口编程源代码 编辑:程序博客网 时间:2024/06/07 06:21

抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

抽象工厂模式是抽象工厂创建多个类型对象,以抽象的形式返回,工厂模式是创建单个对象,以抽象的形式返回。


利用反射改造简单工厂模式,去掉分支判断的逻辑:

public class OperationFactory {//利用反射改造简单工厂模式,去掉分支判断的逻辑    private static Map<String, Class<?>> allOperationMaps = new HashMap<String, Class<?>>();    public static void fillMap() {allOperationMaps.put("+", OperationAdd.class);allOperationMaps.put("-", OperationSub.class);allOperationMaps.put("*", OperationMul.class);allOperationMaps.put("/", OperationDiv.class);    }    public static Operation createOperation(String operator)    throws InstantiationException, IllegalAccessException {Operation operation;fillMap();Class<?> operationClass = allOperationMaps.get(operator);if (operationClass == null) {    throw new RuntimeException("unsupported operation");}operation = (Operation) operationClass.newInstance();return operation;    }}

客户端:

public class Client {//客户端    public static void main(String[] args) throws InstantiationException,    IllegalAccessException {Operation operation = OperationFactory.createOperation("/");operation.numberA = 7;operation.numberB = 8;System.out.println(operation.result());    }}
运行结果:

0.875