设计模式之Builder (创建者模式)的一些个人理解(转)
對(duì)于Builder模式很簡(jiǎn)單,但是一直想不明白為什么要這么設(shè)計(jì),為什么要向builder要Product而不是向知道建造過程的Director要。剛才google到一篇文章,總算清楚了。在這里轉(zhuǎn)貼一下這位richardluo的比喻。
簡(jiǎn)單地說,就好象我要一座房子住,可是我不知道怎么蓋(簡(jiǎn)單的砌墻,層次較低),也不知道怎么樣設(shè)計(jì)(建幾個(gè)房間,幾個(gè)門好看,層次較高),于是我需要找一幫民工,他們會(huì)砌墻,還得找個(gè)設(shè)計(jì)師,他知道怎么設(shè)計(jì),我還要確保民工聽設(shè)計(jì)師的領(lǐng)導(dǎo),而設(shè)計(jì)師本身也不干活,光是下命令,這里砌一堵墻,這里砌一扇門,這樣民工開始建設(shè),最后,我可以向民工要房子了。在這個(gè)過程中,設(shè)計(jì)師是什么也沒有,除了他在腦子里的設(shè)計(jì)和命令,所以要房子也是跟民工要,記住了!
以下是richardluo的代碼,我根據(jù)他的思路加上了相應(yīng)的注釋。
1,定義工人接口,就是能夠完成建造房子任務(wù)的人的通用要求。
2,定義設(shè)計(jì)師,他的職責(zé)是指揮房主指派給他的工人按照自己的設(shè)計(jì)意圖建造房子。
3,民工,他負(fù)責(zé)具體事物的實(shí)施。
4,房主,就是雇人,收房。
好了,我覺得這樣大概能說明白了。不知各位覺得如何呢?或者有更好的應(yīng)用場(chǎng)景解釋,敬請(qǐng)賜教。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/McCa/p/4176938.html
總結(jié)
以上是生活随笔為你收集整理的设计模式之Builder (创建者模式)的一些个人理解(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4 [面向对象]-三大特性:多态
- 下一篇: WPF的二维绘图(一)——Drawing