工作中的常用的23個設計模式
創作不易,關注、點贊,分享,轉發,評論,收藏
裝飾(Decorator):增量價值
裝飾器模式(Decorator Pattern)允許向一個現有的對象添加新的功能,同時又不改變其結構。裝飾器模式模式屬于結構型模式,它是作為現有的類的一個包裝。
裝飾模式是将原來的能力進行包裝,并提供新的行為。
适用性
不影響其他對象情況下,動态、透明的給單個對象增加職責。處理那些可以撤銷的職責。當不能以子類方式進行功能擴充時,比如存在大量獨立的子類擴展。 外觀(Facade):深入淺出
外觀模式(Facade Pattern)隐藏系統的複雜性,并向客戶端提供了一個客戶端可以訪問系統的接口。
它的核心結構有三個角色:外觀角色(Facade)、構成系統的許多其他角色、客戶端(Client)。
這種類型的設計模式屬于結構型模式,它向現有的系統添加一個接口,來隐藏系統的複雜性。外觀模式是說我們不需要理解複雜的系統,而是通過一個外觀去操作。
享元(Flyweight):善于鍊接
享元模式(Flyweight Pattern)主要用于減少創建對象的數量,以減少内存占用和提高性能。
享元模式是說,當我們已經存在一些内容的時候,可以通過緩存複用,而不是重新創建,減少開銷。
代理(Proxy):理解保護
在代理模式(Proxy Pattern)中,一個類代表另一個類的功能。這種類型的設計模式屬于結構型模式。
代理是為了包裝一個類,對相關操作進行二次轉發或者進行一些管控。
責任鍊(Chain of Responsibility):能力與責任
責任鍊模式(Chain of Responsibility Pattern)為請求創建了一個接收者對象的鍊。這種類型的設計模式屬于行為型模式。責任鍊是說将請求讓隊列内的處理器一個個執行,直到找到可以執行的。
職責鍊模式主要包含以下角色。
抽象處理者(Handler)角色:定義一個處理請求的接口,包含抽象處理方法和一個後繼連接。具體處理者(Concrete Handler)角色:實現抽象處理者的處理方法,判斷能否處理本次請求,如果可以處理請求則處理,否則将該請求轉給它的後繼者。客戶類(Client)角色:創建處理鍊,并向鍊頭的具體處理者對象提交請求,它不關心處理細節和請求的傳遞過程。
命令(Command):加強合作
命令模式(Command Pattern)是一種數據驅動的設計模式,它屬于行為型模式。命令模型是說将請求包裝為命令,這樣在執行的時候可以與具體的執行邏輯解耦。
解釋器(Interpreter):加強理解
解釋器模式(Interpreter Pattern)提供了評估語言的語法或表達式的方式,它屬于行為型模式。
這種模式實現了一個表達式接口,該接口解釋一個特定的上下文。
叠代器(Iterator):橫向職責
叠代器模式(Iterator Pattern)是 Java 和 .Net 編程環境中非常常用的設計模式。
這種模式用于順序訪問集合對象的元素,不需要知道集合對象的底層表示。
叠代器模式是将集合的訪問功能獨立出來,通過叠代的模式去訪問。
中介者(Mediator):協調能力
中介者模式(Mediator Pattern)是用來降低多個對象和類之間的通信複雜性。這種模式提供了一個中介類,該類通常處理不同類之間的通信,并支持松耦合,使代碼易于維護。中介者模式屬于行為型模式。
中介模式是說:當多個類之間要協調的時候,往往引入中介者進行協調,減少大家的知識成本。
備忘錄(Memento):小步快跑
備忘錄模式(Memento Pattern)保存一個對象的某個狀态,以便在适當的時候恢複對象。備忘錄模式屬于行為型模式。備忘錄模式是對操作的一些記錄,已被可以恢複到之前的版本。
觀察者(Observer):主觀能動性
當對象間存在一對多關系時,則使用觀察者模式(Observer Pattern)。比如,當一個對象被修改時,則會自動通知依賴它的對象。觀察者模式屬于行為型模式。觀察者模式是說我們通過注冊、回掉這樣的協作設計,完成變化通知的協作機制。
狀态(State):管理自己
在狀态模式(State Pattern)中,類的行為是基于它的狀态改變的。這種類型的設計模式屬于行為型模式。
在狀态模式中,我們創建表示各種狀态的對象和一個行為随着狀态對象改變而改變的 context 對象。
狀态模式是說在不同的狀态下,有不同的處理行為。
策略(Strategy):理解決策
在策略模式(Strategy Pattern)中,一個類的行為或其算法可以在運行時更改。這種類型的設計模式屬于行為型模式。策略模式是說完成一個事情有不同的算法,可以進行相關切換。
模闆(Template):标準化能力
在模闆模式(Template Pattern)中,一個抽象類公開定義了執行它的方法的方式/模闆。它的子類可以按需要重寫方法實現,但調用将以抽象類中定義的方式進行。
訪問者(Visitor):學會放手
在訪問者模式中,我們使用一個訪問者類,它改變了元素類的執行算法。這樣,元素的執行算法就可以随着訪問者的變化而變化。這種類型的設計模式屬于行為模式。訪問者模式指的是訪問者訪問元素,因為訪問者經常有不同的訪問行為。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!