(1)灵活性增强,对于新产品的创建,只需多写一个相应的工厂类。
(2)典型的解耦框架。高层模块只需要知道产品的抽象类,无须关心其他实现类,满足迪米特法则、依赖倒置原则和里氏替换原则。
(1)类的个数容易过多,增加复杂度。
(2)增加了系统的抽象性和理解难度。
(3)抽象产品只能生产一种产品,此弊端可使用抽象工厂模式解决。