《设计模式之禅》读书笔记--(25)创建类模式比较

创建类模式包括工厂方法模式建造者模式抽象工厂模式单例模式原型模式,它们都能够提供对象的创建和管理职责。其中,单例模式是要保持在内存中只有一个对象,原型模式是要求通过复制的方式产生一个新的对象,这两个不容易混淆,剩下的工厂方法模式、抽象工厂模式和建造者模式有较多的相似性。

工厂方法模式与建造者模式

工厂方法模式注重的是整体对象的创建方法,生产出的产品应该具有相似的功能和架构,而不需要考虑具体怎么生产、怎么组装。

建造者模式注重的是部件构建的过程,旨在通过一步一步地精确构造创建出一个复杂对象。建造者模式关注产品的各个部分,在某些应用场景下甚至会关心产品的构建顺序,即使是相同的部件,装配顺序不同,产生的结果也不同,简而言之,建造者模式可以通过不同的部件、不同装配产生不同的复杂对象。

区别

  • 意图不同。工厂方法模式关注的是一个产品的整体,无须关心产品的各部分是如何创建出来的,建造者模式关注的是产品组成部分的创建过程;
  • 产品的复杂度不同。工厂方法模式创建的产品一般都是单一性质的产品,而建造者模式创建的是一个复合产品,由各个部件复合而成,部件不同产品对象当然不同。

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

抽象工厂模式实现对产品家族的创建,一个产品家族是这样的一系列产品:具有不同分类维度的产品组合。抽象工厂模式不关心构建过程,只关心什么产品由什么工厂生产即可。

建造者模式要求按照指定的蓝图建造产品,其主要目的是通过组装零件配件而产生一个新产品。

区别

抽象工厂模式比建造者模式的尺度要大,它关注产品整体,而建造者模式关注构建过程,因此只要能够提供具体的工艺流程,建造者模式可以很容易地构建出一个崭新的产品。

如果希望屏蔽对象的创建过程,只提供一个封装良好的对象,则可以选择抽象工厂模式,而建造者模式可以用在构件的装配方面,如通过装配不同的组件或者相同的组件的不同顺序,可以产生出一个新的对象,它可以产生一个非常灵活的架构,方便地扩展和维护系统。

猜你喜欢

转载自blog.csdn.net/u011475134/article/details/79689112