简单工厂
角色
- 抽象产品角色: 提供产品的接口方法
- 具体产品角色: 实现产品的接口方式
- 工厂类角色: 决策返回具体的产品类(if … else …)
缺点
- 简单工厂的核心是工厂类,所有的创建逻辑都在该工厂类里面,一旦工厂类异常,真个系统就会受到影响;
- 从开闭原则的角色看,产品角色符合开闭原则,但是工厂类中提供了创建具体产品的方法,如果增加新的产品,则需要实时修改工厂类,违背了开闭原则;
- 客户端调用者需要了解工厂类中的创建细节,才能知道返回那个具体的产品类(Factory.createAProduct(“A”));
工厂方法: