当增加新的产品时,我们就需要修改简单工厂类,这违反了涉及模式中的 “对扩展开放,对修改关闭”。
解决方案是抽象工厂类,让抽象工厂类的子类去实例化具体产品。
在这种设计下,每增加一个产品就需要增加一个对应的具体工厂,看似繁琐,但扩展性好。
类图
代码
当增加新的产品时,我们就需要修改简单工厂类,这违反了涉及模式中的 “对扩展开放,对修改关闭”。
解决方案是抽象工厂类,让抽象工厂类的子类去实例化具体产品。
在这种设计下,每增加一个产品就需要增加一个对应的具体工厂,看似繁琐,但扩展性好。
类图
代码