您好,登錄后才能下訂單哦!
本篇內容主要講解“BUILDER模式的實現方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“BUILDER模式的實現方法是什么”吧!
效果
它將構造代碼和表示代碼分開
Builder模式將構建對象的代碼和表現(表達)對象的代碼隔離開。這里的構建偏向于抽象的指示部分,表現(表達)則偏向實際的輸出。例如我們說裝一扇門,對于建筑模型來講,可能就是在模型上粘一個小木板;對于現場工人來講,可能真的就是安裝一個防盜門。這里裝一扇門就是抽象的指示,而粘小木板或者安裝防盜門則是具象表現(表達)的部分。
Builder模式通過封裝一個復雜對象的創建和表示方式提高了對象的模塊性。客戶不需要知道定義產品內部結構的類的所有信息;這些類是不出現在Builder接口中的。
構建任何一個對象,一般來講都有一個從抽象構建到具象構建(實現、表達)的過程。將這兩個過程分離之后,使用接口的一側就不需要了解接口實現的方式和內容,所以說這個對象更加模塊化了。
當然只有復雜到一定程度之后,這種分離才會產生實際的意義。要不要分離,需要設計者根據自己的看法進行判斷。
每個ConcreteBuilder包含了創建和裝配一個特定產品的所有代碼。這些代碼只需要寫一次;然后不同的Director可以復用它以在相同部件集合的基礎上構作不同的Product。在前面的RTF例子中,我們可以為RTF格式以外的格式定義一個閱讀器,比如一個SGMLReader,并使用相同的TextConverter生成SGML文檔的ASCIIText、TeXText和TextWidget譯本。
具象Builder類承擔的是實際構建的部分,它應該包含生成特定產品的代碼。對于每類(不是每個)產品,這部分代碼只需要寫一次;抽象構建的邏輯可以由不同的Director或者相同Director的不同邏輯來決定。
首先來看《設計模式》中的實例的類圖:
TextConverter中分別定義了轉換字符,字體和段落的接口。
DocumentBuilder定義了文檔開始,結束和生成Title1,Title2,Text的接口。
這種不同,其實這就是一個實際開發中如何定義Builder接口的問題。關于這個問題,作者的觀點是:
接口的定義應該按照Director世界中的觀點來進行。
接口的定義還應該考慮具象Builder的可實現性。
到此,相信大家對“BUILDER模式的實現方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。