工作中的常用的23個設計模式,一篇就懂了,下集

猿之生活java技術學堂 發佈 2022-11-26T22:50:47.361617+00:00

工作中的常用的23個設計模式創作不易,關注、點讚,分享,轉發,評論,收藏裝飾(Decorator):增量價值裝飾器模式(Decorator Pattern)允許向一個現有的對象添加新的功能,同時又不改變其結構。裝飾器模式模式屬於結構型模式,它是作為現有的類的一個包裝。

工作中的常用的23個設計模式

創作不易,關注、點讚,分享,轉發,評論,收藏


裝飾(Decorator):增量價值

裝飾器模式(Decorator Pattern)允許向一個現有的對象添加新的功能,同時又不改變其結構。裝飾器模式模式屬於結構型模式,它是作為現有的類的一個包裝。

裝飾模式是將原來的能力進行包裝,並提供新的行為。

適用性

  • 不影響其他對象情況下,動態、透明的給單個對象增加職責。
  • 處理那些可以撤銷的職責。
  • 當不能以子類方式進行功能擴充時,比如存在大量獨立的子類擴展。

外觀(Facade):深入淺出

外觀模式(Facade Pattern)隱藏系統的複雜性,並向客戶端提供了一個客戶端可以訪問系統的接口。

它的核心結構有三個角色:外觀角色(Facade)、構成系統的許多其他角色、客戶端(Client)。

這種類型的設計模式屬於結構型模式,它向現有的系統添加一個接口,來隱藏系統的複雜性。外觀模式是說我們不需要理解複雜的系統,而是通過一個外觀去操作。

享元(Flyweight):善於連結

享元模式(Flyweight Pattern)主要用於減少創建對象的數量,以減少內存占用和提高性能。

享元模式是說,當我們已經存在一些內容的時候,可以通過緩存復用,而不是重新創建,減少開銷。

代理(Proxy):理解保護

在代理模式(Proxy Pattern)中,一個類代表另一個類的功能。這種類型的設計模式屬於結構型模式。

代理是為了包裝一個類,對相關操作進行二次轉發或者進行一些管控。


責任鏈(Chain of Responsibility):能力與責任

責任鏈模式(Chain of Responsibility Pattern)為請求創建了一個接收者對象的鏈。這種類型的設計模式屬於行為型模式。責任鏈是說將請求讓隊列內的處理器一個個執行,直到找到可以執行的。

職責鏈模式主要包含以下角色。

  1. 抽象處理者(Handler)角色:定義一個處理請求的接口,包含抽象處理方法和一個後繼連接。
  2. 具體處理者(Concrete Handler)角色:實現抽象處理者的處理方法,判斷能否處理本次請求,如果可以處理請求則處理,否則將該請求轉給它的後繼者。
  3. 客戶類(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):學會放手

在訪問者模式中,我們使用一個訪問者類,它改變了元素類的執行算法。這樣,元素的執行算法就可以隨著訪問者的變化而變化。這種類型的設計模式屬於行為模式。訪問者模式指的是訪問者訪問元素,因為訪問者經常有不同的訪問行為。

關鍵字: