优点
1)符合开闭原则,增加一个产品类,只需要增加一个产品类和具体的工厂类;
2)符合单一职责原则,每个工厂只负责生产对应的产品;
3)使用者只需要知道产品的抽象类,无需关心其他实现类,满足迪米特里原则、依赖倒置和里氏替换原则。
缺点
1)每增加一个产品需要增加产品类和工厂类;
2)每个产品需要具体的工厂和具体产品类。