本文介绍: 建造者模式将产品的构建过程与产品的表示分离,使得构建过程可以独立于产品而变化。通过使用建造者模式,可以更加灵活地构建复杂对象,并且可以复用相同的构建过程来创建不同的产品。具体建造者类通过实现不同的构建方法来构建产品的不同部分,并提供获取最终产品的函数。需要创建复杂的对象,而且对象的构建过程是稳定的,但是具体的构建步骤可能会有所差异。如果产品的组成部分发生变化,可能需要修改建造者类的代码,影响系统的稳定性。需要控制对象的创建过程,并且希望隐藏产品的创建细节,只暴露出产品的接口。函数中,创建了具体建造者对象。
UML类图:
代码实现:
在上面的示例代码中,首先定义了产品类Product
,其中包含了三个部分。然后定义了抽象建造者类Builder
,其中包含了构建产品的各个部分的函数指针。
接着定义了具体建造者类ConcreteBuilder
,它实现了抽象建造者类中的函数,并拥有一个指向产品对象的指针。具体建造者类通过实现不同的构建方法来构建产品的不同部分,并提供获取最终产品的函数。
最后定义了指挥者类Director
,它接收一个具体建造者对象作为参数,通过调用具体建造者的函数来构建产品。
在main
函数中,创建了具体建造者对象builder
和指挥者对象director
,然后通过指挥者对象来构建产品。最后获取并打印产品的各个部分。
建造者模式将产品的构建过程与产品的表示分离,使得构建过程可以独立于产品而变化。通过使用建造者模式,可以更加灵活地构建复杂对象,并且可以复用相同的构建过程来创建不同的产品。
建造者模式的优点:
建造者模式的缺点:
适用场景:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。