Files
Hui-s-notebook/203-Java/203.1-Java面试/205.19-网络&操作系统/创建类模式大PK.md
2023-09-10 10:50:53 +08:00

1.6 KiB

工厂模式 VS 建造者模式

工厂模式注重的是整体对象的创建方法, 建造者模式注重部件构建的过程,旨在一步一步地精确创造构建出一个复杂对象

通过工厂方法模式生产出对象,然后由客户端进行对象的其他操作,但是并不代表所有生产出的对象都必须具有相同的状态和行为,它是由产品所决定

区别

  • 意图不同

工厂方法里关注的是一个产品整体,无须关心产品的各部分是如何创建出来的, 建造者模式,一个具体的产品的产生是依赖各个部件的产生以及装配顺序,它关注的是"由零件一步一步地组装出产品对象"

  • 产品复杂度不同

工厂方法创建的产品一般都是单一性质产品,而建造者模式创建的则是一个复合产品,它由各个部件复合而成,部件不同产品对象不同

如何选择? 取决于我们在做系统时的意图, 如果需要详细关注一个产品部件的生产、安装步骤,选择建造者, 否则选工厂方法模式

抽象工厂模式 VS 建造者模式

抽象工厂模式实现对产品家族的创建,一个产品家族必须是这样的一系列产品: 具有不同分类维度的产品组合, 采用抽象工厂模式则是不关心构建过程,只关心产品由什么工厂生产即可。 构建者模式要求按照指定的蓝图构建产品,主要目的是通过组装零配件而产生一个新产品