创建型模型——建造者模式

开头

   当一个复杂的对象是由多个子对象通过一定的步骤组合而成的时候,我们用到了建造者模式。例如我们平时买的汽车,他就是一个复杂的对象,通过轮子、引擎发动机、方向盘等组合而成。我们平时用的电脑,CPU、主板、硬盘等,都是一个复杂的对象。当我们购买汽车或者电脑的时候不是买他们的零部件吧,而是买一个整体。下面我们就来学习建造模式。

  

内容

  建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。

  下面我们以大话设计里面的例子来详细的介绍一下建造者模式,既然是建造,结果肯定是最后出现一个产品对象,这个产品对象是如何出来的呢?例如我们做西红柿炒鸡蛋,步骤是如何的呢?

  产品角色: 西红柿炒鸡蛋,需要声明一下西红柿、鸡蛋、糖、盐、油、(葱花鸡蛋)

  抽象建造者:我们需要西红柿、鸡蛋、糖、盐、油、将这些混合在一起。

  具体建造者:我们需要西红柿1个、鸡蛋3个、糖2克、盐5克、油10克,按照组合次序放进来。

  指挥者:开火—放油—放鸡蛋—放油炒西红柿—放糖—放鸡蛋—放盐。

  客户端的佳兴:我要吃西红柿炒鸡蛋,(实例化一下指挥者)——西红柿炒鸡蛋来喽




总结

优点:(1):客户端不需要知道产品组成的细节,相同的创建过程,出现不同的产品

          (2):增加新的产品,不需要修改代码,符合开闭原则

缺点:(1):创建的产品组成成分相似,不适合组成成分不相同的产品

适用场景:(1):具体产品是由多个的小产品组成,适合创建复杂的对象。

                 (2):相同的创建过程,不同的产品。


    西红柿炒鸡蛋和葱花炒鸡蛋是一个和复杂的对象,它们是由多个子对象组成,但是两者的生产过程是一致的。我们对比一下抽象工厂,抽象工厂可以创建一系列的产品,而建造者模式可创建部分产品。

  关于建造者模式就先学习到这里,如果本篇博客对小伙伴儿们有好处就一个赞吧,在博客的右方。大家也可以关注我的设计模式专栏哦。


猜你喜欢

转载自blog.csdn.net/fjxcsdn/article/details/80342043