Day39. 建造者模式

本文同步更新於blog

Builder Pattern

将复杂对象的构建与其表示分离


建造者模式会将类别分为三类:
分别是指挥者类别 (Director)建造者类别 (Builder)产品类别 (Product)

通常会透过指挥者来决定建造过程。
有时侯会省略指挥者,改由客户端直接决定建造过程。


优点
可以按步骤,一步步地创建出物件。
将创建物件的逻辑与物件本身的逻辑分离。

缺点
会使程序码变得复杂。


与其他模式的比较:

[工厂方法模式]:
工厂方法模式中,不同分类的产品都有了对应的工厂。
每个不同的选择都是物件层级

建造者模式中,分离了建造者与产品。
每个不同的选择都是步骤层级


而建造者模式常常会搭配流式接口 (Fluent Interface)的写作风格。
流式接口通常依赖於
方法链 (Method Chaining)

藉由每个方法都回传物件本身,来增加程序的可读性

ʕ •ᴥ•ʔ:Laravel中的query builder,用的就是建造者模式的概念。


<<:  JS 物件的参考特性 DAY59

>>:  [PHP]透过[jquery] 以 [Ajax]方式使用[Stored Procedure]取得[MSSQL]资料

[Day29] 第二十九 - 补充技能交换前端以及与Express沟通api

前言 今天比较赶 我先贴code有空在补充搂 目标 练习blade layout 界街前後端 tra...

Day 15 -资料查询语言 INNER JOIN!

INNER JOIN (内部连接) 为等值连接,必需指定等值连接的条件,而查询结果只会返回符合连接条...

Day 29-Unit Test 应用於使用重构与测试手法优化 C# Code-3 (情境及应用-9)

Unit Test 应用於使用重构与测试手法优化 C# Code-3-前言 昨天已经把 DemoCa...

【Side Project】 订单清单 - 资料库新增状态栏位

昨天取得资料库中的清单後,会发现一个问题, 我们无法判断哪些订单已经完成和未完成。 状态栏位新增 开...

EP14 - [TDD] 订单 Order 类别

Youtube 频道:https://www.youtube.com/c/kaochenlong ...