设计模式(对象创建)——创建者模式

来源:互联网 发布:淘宝宝贝标题可以改吗 编辑:程序博客网 时间:2024/05/17 18:15

创建者模式:使用多个简单的对象一步步构建成一个复杂的对象。

场景还原(兰州拉面):

某天去吃兰州拉面,他们有不同的套餐,套餐里包含的种类是一样的,都有一碗拉面,一份泡菜,一杯饮料。但是不同的套餐里这3样又都不是全部一样的,也许分量和品质有差别。此时我们就可以用建造者模式。

客户根据套餐不同,跟收银员点了一份A套餐的拉面,另一名客户同时又点了一份B套餐的拉面。

这时收银员把这两个单子转交给后台,其实也就是厨房,厨师看到这两个单子的不同而煮不同的拉面,然后返回给服务员,服务员分发拉面给客户!

UML类图阐述:

建造者模式的结构中引入了一个指挥者类Director,该类的作用主要有两个:一方面它隔离了客户与生产过程;另一方面它负责控制产品的生成过程。指挥者针对抽象建造者编程,客户端只需要知道具体建造者的类型,即可通过指挥者类调用建造者的相关方法,返回一个完整的产品对象。

在客户端代码中,无须关心产品对象的具体组装过程,只需确定具体建造者的类型即可,建造者模式将复杂对象的构建与对象的表现分离开来,这样使得同样的构建过程可以创建出不同的表现。


这里写图片描述

模式结构:

  • Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。
  • Concrete Builder:与应用程序紧密相连的类,在应用程序调用下创建产品实例。
  • Director:担任这个角色的类调用具体建造者角色以创建产品对象。
  • Product:产品角色

更多C++示例代码,请移步到本人的github。


设计模式,祝愿你把代码写成艺术。

6/20/2017 11:04:12 AM