搜尋
首頁常見問題軟體設計模式之基本概念講解

軟體設計模式之基本概念講解

Apr 18, 2019 pm 05:14 PM
設計模式

設計模式是指開發人員針對軟體開發過程中反覆遇到的問題總結出來的解決方法。本文主要對設計模式的介紹,有興趣的朋友可以看看。

DesignPatternsPrinciple【設計模式原則】

#設計模式六大原則

  • 開放封閉原則:一個軟體實體如類、模組和函數應該對擴充開放,對修改關閉。

  • 里氏替換原則:所有引用基底類別的地方必須能透明地使用其子類別的物件.

  • 依賴倒置原則:高層模組不應該依賴低層模組,二者都應該依賴其抽象;抽像不應該依賴細節;細節應該依賴抽象。

  • 單一職責原則:不要存在多於一個導致類別變更的原因。通俗的說,即一個類只負責一項職責。

  • 介面隔離原則:客戶端不應該依賴它不需要的介面;一個類別對另一個類別的依賴應該建立在最小的介面上。

  • 迪米特法則:一個物件應該對其他物件保持最少的了解

設計模式

Abstract Factory(抽象工廠模式) :提供一個創建一系列相關或相互依賴物件的接口,而無需指定它們特定的類別。

Adapter(適配器模式) :將一個類別的介面轉換成客戶希望的另一個介面。 Adapter模式使得原本因為介面不相容而無法一起工作的那些類別可以一起工作。

Bridge(橋接模式) :將抽象部分與它的實作部分分離,使它們都可以獨立地變化。

Builder(建造者模式) :將一個複雜物件的建構與它的表示分離,使得同樣的建構過程可以創造不同的表示。

Chain of Responsibility(責任鏈模式) :為了解除請求的發送者和接收者之間的耦合,而使多個物件都有機會處理這個請求。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個物件處理它。

Command(命令模式) :將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日誌,以及支援可取消的操作。

Composite(複合模式) :將物件組合成樹狀結構以表示「部分-整體」的層次結構。 Composite使得客戶對於單一物件和複合物件的使用具有一致性。

Decorator(裝飾器模式) :動態地為一個物件添加一些額外的職責。就擴充功能而言,Decorator模式比產生子類別方式更為靈活。

Facade(門面模式) :為子系統的一組介面提供一個一致的介面,Facade模式定義了一個高層接口,這個介面使得這個子系統更容易使用。

Factory Method(工廠方法模式) :定義一個用於建立物件的接口,讓子類別決定將哪一個類別實例化。 Factory Method使一個類別的實例化延遲到其子類別。

Flyweight(享元模式) :運用共享技術有效地支援大量細粒度的物件。

Interpreter(解釋器模式) :給定一個語言,定義它的文法的一種表示,並定義一個解釋器,該解釋器使用該表示來解釋語言中句子。

Iterator(迭代器模式) :提供一個方法,順序存取一個聚合物件中各個元素,而又不需要暴露該物件的內部表示。

Mediator(中介者模式) :用一個中介物件來封裝一系列的物件互動。中介者使各物件不需要明確地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的交互作用。

Memento(備忘錄模式) :在不破壞封裝性的前提下,捕獲一個物件的內部狀態,並在該物件之外保存這個狀態。這樣以後就可將該物件恢復到已儲存的狀態。

Observer(觀察者模式) :定義物件間的一種一對多的依賴關係,以便當一個物件的狀態改變時,所有依賴它的物件都會被通知並自動重新整理.

Prototype(原型模式) :用原型實例指定建立物件的種類,並且透過拷貝這個原型來建立新的物件。

Proxy(代理模式) :為其他物件提供一個代理以控制對這個物件的存取。

Simple Factory (簡單工廠模式):根據參數的不同傳回不同類別的實例。

Sigleton(單例模式) :保證一個類別只有一個實例,並提供一個存取它的全域存取點。

State(狀態模式) :允許一個物件在其內部狀態改變時改變它的行為。物件看起來就像修改了它所屬的類別。

Strategy(策略模式) : 定義一系列的演算法,把它們一個個封裝起來,並且使它們可互相替換。本模式使得演算法的變化可獨立於使用它的使用者。

Template Method(模板方法模式) :定義一個操作中的演算法的骨架,而將一些步驟延遲到子類別中。 Template Method使得子類別可以不改變一個演算法的結構即可重新定義該演算法的某些特定步驟。

Visitor(訪客模式) :表示一個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類別的前提下定義作用於這些元素的新操作。

 

設計模式之間的關係

# UML類別圖解

由於後面會使用UML詳細解釋模式結構,這裡先放一個簡單圖解。

想了解更多相關知識,請關注PHP中文網了解更多訊息!

以上是軟體設計模式之基本概念講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:博客园。如有侵權,請聯絡admin@php.cn刪除
deepseek網頁版官方入口deepseek網頁版官方入口Mar 12, 2025 pm 01:42 PM

國產AI黑馬DeepSeek強勢崛起,震撼全球AI界!這家成立僅一年半的中國人工智能公司,憑藉其免費開源的大模型DeepSeek-V3和DeepSeek-R1,在性能上與OpenAI等國際巨頭比肩,甚至在成本控制方面實現了突破性進展,贏得了全球用戶的廣泛讚譽。 DeepSeek-R1現已全面上線,性能媲美OpenAIo1正式版!您可以在網頁端、APP以及API接口體驗其強大的功能。下載方式:支持iOS和安卓系統,用戶可通過應用商店下載;網頁版也已正式開放! DeepSeek網頁版官方入口:ht

deepseek服務器繁忙怎麼解決deepseek服務器繁忙怎麼解決Mar 12, 2025 pm 01:39 PM

DeepSeek:火爆AI遭遇服務器擁堵,如何應對? DeepSeek作為2025年開年爆款AI,免費開源且性能媲美OpenAIo1正式版,其受歡迎程度可見一斑。然而,高並發也帶來了服務器繁忙的問題。本文將分析原因並提供應對策略。 DeepSeek網頁版入口:https://www.deepseek.com/DeepSeek服務器繁忙的原因:高並發訪問:DeepSeek的免費和強大功能吸引了大量用戶同時使用,導致服務器負載過高。網絡攻擊:據悉,DeepSeek對美國金融界造成衝擊,

深度求索deepseek官網入口深度求索deepseek官網入口Mar 12, 2025 pm 01:33 PM

2025年開年,國產AI“深度求索”(deepseek)驚艷亮相!這款免費開源的AI模型,性能堪比OpenAI的o1正式版,並已在網頁端、APP和API全面上線,支持iOS、安卓和網頁版多端同步使用。深度求索deepseek官網及使用指南:官網地址:https://www.deepseek.com/網頁版使用步驟:點擊上方鏈接進入deepseek官網。點擊首頁的“開始對話”按鈕。首次使用需進行手機驗證碼登錄。登錄後即可進入對話界面。 deepseek功能強大,可進行代碼編寫、文件讀取、創

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器