意圖
將一個復雜的構建與其表示相分離,使得同樣的構建過程可以創建不同的表示。
場景
在電腦城裝機總有這樣的經歷。我們到了店裡,先會有一個銷售人員來詢問你希望裝的機器是怎麼樣的配置,他會給你一些建議,最終會形成一張裝機單。和客戶確定了裝機配置以後,他會把這張單字交給提貨的人,由他來准備這些配件,准備完成後交給裝機技術人員。技術人員會把這些配件裝成一個整機交給客戶。
不管是什麼電腦,它總是由CPU、內存、主板、硬盤以及顯卡等部件構成的,並且裝機的過程總是固定的:
l 把主板固定在機箱中
l 把CPU安裝到主板上
l 把內存安裝到主板上
l 把硬盤連接到主板上
l 把顯卡安裝到主板上
但是,每台兼容機的部件都各不相同的,有些配置高一點,有些配置低一點,這是變化點。對於裝機技術人員來說,他不需要考慮這些配件從哪裡來的,他只需要把他們組裝在一起了,這是穩定的裝機流程。要把這種變化的配件和穩定的流程進行分離就需要引入Builder模式。