一、概述
建造者模式,作为创建者模式的一种,也被称作生成器模式。它主要的应用场景是用于创建结构和构建过程较为复杂的对象。
在软件开发的世界里,对于普通对象而言,我们可以轻松地使用 new 关键字来完成创建,就如同搭积木一样简单直接。然而,并非所有对象都能如此便捷地创建。有些特殊对象,它们可能有着复杂的内部结构、严格的创建步骤或者依赖于多种外部资源,这使得单纯依靠 new 操作无法满足创建需求。
想象一下,我们要建造一座宏伟的城堡。如果只是简单地用 new 来创建,就好像在没有任何规划和准备的情况下,随意地堆砌砖块,很难构建出一座功能完善、结构合理的城堡。这时,建造者模式就如同一位经验丰富的建筑师,它会将城堡的建造过程分解为多个步骤,从打地基、搭建框架到装饰内部,每一个环节都有条不紊地进行。通过建造者模式,我们可以更好地控制对象的创建过程,确保每一个细节都符合要求。
所以,当面对那些不能通过 new 方式简单创建的复杂对象时,建造者模式就成为了我们的得力工具,它能够让对象的创建更加高效、有序,就像为复杂对象的创建过程绘制了一张精准的蓝图。
二、实现
建造者模式包括以下几个角色:
1、抽象建造者:这个主要是产生对象实例各部分的接口
2、具体建造者:实现抽象建造者的接口的类,并提供产生对象的方法
3、指挥者:可选,定义创建对象的具体步骤。
抽象建造者:
2个具体建造者:
指挥者:
指挥者在建造者模式中其实是可选部分的,是为了更好的利用建造者实现类返回想要的实例对象。
测试类:
以上是关于建造者模式实现的一个例子。实际上,有一种常见的流式写法来生成对象,这同样属于建造者模式的范畴。它通过逐步补充对象的各项属性,最终实现对象的创建。这种方式就像是在搭建一座大厦,每一个属性的补充都是在为这座大厦添砖加瓦,让对象在不断完善中逐渐成型。
值得一提的是,设计模式并非一成不变的知识体系,它是一个动态发展、持续进化的领域。在软件开发的世界里,新的问题不断涌现,也就需要新的解决方案。因此,关于设计模式的探索与总结会持续更新,就如同不断更新的软件版本,以更好地适应不断变化的开发需求。我们可以期待在未来的学习与实践中,能接触到更多新颖且实用的设计模式,为我们的编程之路增添更多的助力。