设计模式之:三种工厂模式的对比SimpleFactoryPattern、FactoryMethodPattern、AbstractFactoryPattern


工厂模式对比:

简单工厂

SimpleFactoryPattern

工厂方法

FactoryMethodPattern

抽象工厂

AbstractFactoryPattern

工厂数量

一个工厂

多个工厂

多个工厂

工厂数量计算

工厂数=产品数

工厂数=产品系列数

单个工厂创建产品数

所有产品

一个产品

一个产品系列

创建产品的方式

工厂通过条件语句,决定生产哪种产品

创建不同的工厂,从而生产不同的产品

创建不同的工厂,从而生产不同的产品系列

扩展产品难易程度

需要修改工厂代码

不用修改工厂代码

不用修改工厂代码

扩展产品实现方式

增加产品类,修改工厂代码

增加产品类和工厂类

增加产品系列和工厂类

是否使用接口

理解的难易程度

容易

一般

较难

是否实现解耦

是否符合依赖倒置原则

是否符合开闭原则

是否符合里氏替换原则

产品符合,工厂不符合

是否符合迪米特法则

是否符合单一职责原则