概念
Abstract Factory Pattern:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。
与工厂模式的区别
抽象工厂模式中:生产产品的工厂是抽象的。比如,可口可乐生产可乐的同时,还要生产可口可乐的瓶子、箱子,百事可乐也一样,所以要把工厂抽象出来,专门生产同一主题的不同商品
使用
1 | // 可乐抽象类 |
优点
- 具有工厂模式的优点,还可以在类中对产品族进行约束,如果产品比较多,更应该使用抽象工厂模式而不是工厂模式(适合只要一个产品)
缺点
- 扩展性比较费力,尤其是系统比较庞大的时候,产品族需要增加一个新的产品,就要在工厂类进行修改