淺談建立型模式
前言:
最近學習了設計模式,對設計模式有了一些了解,下面我來淺談一下設計模式中的建立型模式吧!
模式的定義
說到“模式”,其實模式起源于建築業而非軟體專業,所謂的模式都描述了一個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心,通過這種方式,人們可以無數次地重用那些已有的解決方案,無需再重複相同的工作。簡單點說,模式就是在特定環境中解決問題的一種方案。
設計模式的定義
我要說的建立型模式是設計模式中的一類,在說建立型模式之前我先介紹一下設計模式,設計模式是一套被反複使用、多數人知曉的、經過分類編寫的、代碼設計經驗的總結。我們在寫程式的過程中使用設計模式就是為了可重用代碼、讓代碼更容易被他人了解、提高代碼的可靠性。
對建立型模式的認識
在軟體工程中,建立型模式是處理對象建立的設計模式,試圖根據實際情況使用合适的方式建立對象。
建立型模式旨在将系統與它的對象建立、結合、表示的方式分離。這些設計模式在對象建立的類型、主體、方式、時間等方面提高了系統的靈活性。
基本的對象建立方式可能會導緻設計上的問題,或增加設計的複雜度。建立型模式通過以某種方式控制對象的建立來解決問題。
建立型模式由兩個主導思想構成。一是将系統使用的具體類封裝起來,二是隐藏這些具體類的執行個體建立和結合的方式。
建立型模式又分為對象建立型模式和類建立型模式。對象建立型模式處理對象的建立,類建立型模式處理類的建立。詳細地說,對象建立型模式把對象建立的一部分推遲到另一個對象中,而類建立型模式将它對象的建立推遲到子類中。
現代軟體工程更加依賴對象的組合,而不是類的繼承,強調從寫死的行為轉變到定義一組基本行為來組合成複雜的行為。寫死的行為不夠靈活,因為如果想要改變設計的一部分,需要通過重寫或者重新實作才能完成。另外,寫死沒有提高重用性,而且難以跟蹤錯誤。由于這些原因,建立型模式比寫死的行為更有用。建立型模式使設計變得更靈活,提供了不同的方式,從代碼中移除了對需要執行個體化的具體類的引用。換句話說,這些模式增強了對象和類之間的獨立性。
建立型模式的使用
在以下情況中,可以考慮應用建立型模式:
- 一個系統需要和它的對象和産品的建立互相獨立。
- 一組相關的對象被設計為一起使用。
- 隐藏一個類庫的具體實作,僅暴露它們的接口。
- 建立獨立複雜對象的不同表示。
- 一個類希望它的子類實作它所建立的對象。
- 類的執行個體化在運作時才指定。
- 一個類隻能有一個執行個體,而且這個執行個體能在任何時候通路到。
- 執行個體應該能在不修改的情況下具有可擴充性。
建立型模式的執行個體
建立型設計模式的一些例子如下:
- 抽象工廠模式,提供一個建立相關或依賴對象的接口,而不指定對象的具體類。
- 工廠方法模式,允許一個類的執行個體化推遲到子類中進行。
- 生成器模式,将一個複雜對象的建立與它的表示分離,使同樣的建立過程可以建立不同的表示。
- 延遲初始化模式,将對象的建立,某個值的計算,或者其他代價較高的過程推遲到它第一次需要時進行。
- 對象池模式,通過回收不再使用的對象,避免建立和銷毀對象時代價高昂的擷取和釋放資源的過程。
- 原型模式,使用原型執行個體指定要建立的對象類型,通過複制原型建立新的對象。
- 單例模式,保證一個類隻有一個執行個體,并且提供對這個執行個體的全局通路方式。
總結
建立型模式的關注點:
建立型模式關注對象的建立過程。 建立型模式描述如何将對象的建立和使用分離,讓開發人員在使用對象時無需關心對象的建立細節,進而降低系統的耦合度。 軟體在運作時類将執行個體化成對象,并由這些對象來協作完成各項業務功能
建立型模式的作用:
建立型模式對類的執行個體化過程進行了抽象,能夠将軟體子產品中對象的建立和對象的使用分離,對開發人員隐藏了類的執行個體的建立細節。
建立型模式要解決的問題:
每一個建立型模式都通過采用不同的解決方案來回答三個問題,即建立什麼(what),由誰建立(who)和何時建立(when)。

:泰鬥賢若如
微信公衆号:見賢思程式設計
Github:https://github.com/zyx110
有事微信:zyxt1637039050
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連結,否則保留追究法律責任的權利。
我不能保證我所說的都是對的,但我能保證每一篇都是用心去寫的,我始終認同: “
分享的越多,你的價值增值越大”,我們一同在分享中進步,在分享中成長,
越努力越幸運。再分享一句話“
十年前你是誰,一年前你是誰,甚至昨天你是誰,都不重要。重要的是,今天你是誰,以及明天你将成為誰。”
人生赢在轉折處,改變從現在開始!支援我的朋友們記得點波
推薦哦,您的肯定就是我前進的動力。