前幾天拔牙的後遺症(?),就是連續三天低燒咳嗽QQ
希望趕快好
今天要講解Creational Pattern的最後一個Pattern啦~~
Builder is a creational design pattern that lets you construct complex objects step by step. The pattern allows you to produce different types and representations of an object using the same construction code.
-- Refactoring Guru
建造者模式就是把複雜的建構過程拆解~
來舉個小例子吧
我們同時用建造房子作為例子~
假設我們今天要做一個房子
物件
蓋一棟簡單的房子你就只需要4面牆、地板、門、窗、屋頂...
但如果今天想要再複雜一點呢?
有些房子要後院、有些要泳池、有些要加車庫、或是一些水電管線設備通通都要設計進去
最簡單粗暴的方法是建立一個房子的父類別,然後延伸出幾個子類別,
但最終還是可能會遇到子類別越長越多的情況。
例如底下這張圖,一樣出自refactoring guru
建造者模式的幾個重要項目:
客戶可以和開發商合作,提供自己對房子的需求和偏好
然後開發商將這些需求傳遞給相應的具體建造者,而不需要了解內部的建造細節。
這使得客戶可以根據其需求訂製房子,同時也使構建過程更加靈活和可維護。
如果需要新增或更改建造步驟或風格選擇,只需修改相應的具體建造者,而不需要修改客戶端程式碼。