设计模式(对象创建)——创建者模式
创建者模式:使用多个简单的对象一步步构建成一个复杂的对象。
场景还原(兰州拉面):
某天去吃兰州拉面,他们有不同的套餐,套餐里包含的种类是一样的,都有一碗拉面,一份泡菜,一杯饮料。但是不同的套餐里这3样又都不是全部一样的,也许分量和品质有差别。此时我们就可以用建造者模式。
客户根据套餐不同,跟收银员点了一份A套餐的拉面,另一名客户同时又点了一份B套餐的拉面。
这时收银员把这两个单子转交给后台,其实也就是厨房,厨师看到这两个单子的不同而煮不同的拉面,然后返回给服务员,服务员分发拉面给客户!
UML类图阐述:
建造者模式的结构中引入了一个指挥者类Director,该类的作用主要有两个:一方面它隔离了客户与生产过程;另一方面它负责控制产品的生成过程。指挥者针对抽象建造者编程,客户端只需要知道具体建造者的类型,即可通过指挥者类调用建造者的相关方法,返回一个完整的产品对象。
在客户端代码中,无须关心产品对象的具体组装过程,只需确定具体建造者的类型即可,建造者模式将复杂对象的构建与对象的表现分离开来,这样使得同样的构建过程可以创建出不同的表现。
模式结构:
- Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。
- Concrete Builder:与应用程序紧密相连的类,在应用程序调用下创建产品实例。
- Director:担任这个角色的类调用具体建造者角色以创建产品对象。
- Product:产品角色
更多C++示例代码,请移步到本人的github。
设计模式,祝愿你把代码写成艺术。
6/20/2017 11:04:12 AM