您的位置:首页 > 编程语言 > Java开发

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

2017-12-19 16:23 417 查看
抽象工厂模式(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: