將一個復雜的構建與其表示相分離,使得同樣的構建過程可以創建不同的表示
--《設計模式》GOF
Insus.NET在asp.net環境中,列舉一個建造者設計模式(Builder)例子,以最帖近開發環境與需求。開發站點時,我們需要開發新聞類,視頻類,圖片類等等。每個網頁還有可能是頁頭,內容,頁腳等。開發這些頁頭,內容與頁腳時,我們會使用用戶控件來寫好,加載至網頁中去。
每個類別的網頁,你分別新建三個用戶控件(ascx), NewsHeader,NewsContent,NewsFooter, xxxHeader,xxxContent,xxxFooter等......NewsHeader.ascx:NewsContent.ascx:
NewsFooter.ascx:
就是說,把網頁每塊做成用戶控件,這樣細化與維護?,F在我們需要建造一個網頁(產品),這個產品是由三個部件組成。
你的網頁會有很多,如上所列舉的,顯示文章,新聞,視頻,圖片等。我們需要定義一個抽象的共同接口,讓具體類有一個統一標準:建造者設計模式,還一個角色,就是指揮者:
現在我們可以建造具體類,真實產品(網頁),NewPage, VideoPage,ArticlePage 等等:現在,我們需要在實際的網頁中去展示完整的產品(網頁):在xxx.aspx中,拉一個控件容器,如PlaceHolder,這里只是舉列,實際環境中,也許需要拉好幾個容器,來在網頁定義與動態加載。
xxx.aspx.cs:
網頁運行時,看看效果:
下面內容于2014-12-23 13:32分補充:忘記把完整的演示代碼分享了:http://download.VEVb.com/insus/CSharpNET/DesignPattern_Builder.rar
新聞熱點
疑難解答