23種設計模式

2022-06-13 05:15:11 字數 2465 閱讀 4801

設計模式是一套被反覆使用、多數人知曉的、經過分類編目的、**設計經驗的總結,使用設計模式是為了可重用**、讓**更容易被他人理解、保證**可靠性。它包括的23種設計模式分別為:工廠方法模式、抽象工廠模式、建造者模式、原型模式、單例模式、介面卡模式、橋接模式、組合模式、裝飾模式、外觀模式、享元模式、**模式、職責鏈模式、命令模式、直譯器模式、迭代器模式、中介者模式、備忘錄模式、觀察者模式、狀態模式、策略模式、模板方法模式、訪問者模式。

工廠方法模式是一種類建立型模式,他指的是建立乙個介面,這個介面就相當於是乙個工廠,他只是負責提供乙個負責生產的方法,而要生產什麼產品和生產什麼「品牌」的產品則是由子類來實現。這樣做的優點就是在想要生產乙個不同種類的新產品時不用修改其他的生產產品的子類和具體的工廠的子類,滿足了開閉原則。

抽象工廠模式時物件建立型模式,它是在工廠方法模式的基礎上新增了產品族和產品等級結構的概念,產品族是同乙個「品牌」的不同種類的產品,產品等級結構是產品的繼承結構,在這種模式中抽象的工廠是乙個父類,不同的「品牌」的工廠(即產品的等級結構)繼承這個父類,然後各個「品牌」的工廠生產不同種類的產品(即產品族)。

建造者模式是一種物件建立型模式,就是將乙個比較複雜物件的建立過程分解為簡單的小過程的,而使用的人不需要知道它內部是如何組合成為複雜的物件的。

原型模式是一種物件建立型模式,它就相當於是乙個轉殖的過程,被轉殖的物件就是乙個原型,轉殖分為深轉殖和淺轉殖,深轉殖隨著原型物件的變化而變化,但是淺轉殖則只保持它初次轉殖的狀態,不會隨著原型物件的變化而變化。它最大的優點就是可以很快速的建立很多相同或相似的物件,簡化了物件的建立過程,還可以保留物件的一些中間狀態。

單例模式是一種物件建立型模式,在這個模式中將乙個類唯一的乙個例項提供給整個系統,這個類就是單例類,它提供了全域性訪問的方法,因為它只封裝了乙個例項,所以可以有效的控制客戶對於它的訪問時間、方式等。

介面卡模式是一種物件結構型模式也是一種類結構型模式,它就相當於是乙個轉換器,將已有介面轉換為使用者想要的介面,使得介面不相容的各個類可以共同工作。它可以使目標類和適配者類解耦,具有良好的靈活性和擴充套件性。

橋接模式是一種物件結構型模式,它將抽象類和它的具體實現類分離,將相當於在抽象類和實現類之間搭了乙個橋,使得它們可以單獨進行變化,而不互相影響,當用到它們的時候只需要將它們按照自己的需求進行組合就可以了。

組合模式是一種物件型結構模式,這個模式主要採用的就是使用樹形結構來表示整體和部分的層次關係,這樣可以使得分析複雜物件更為簡單。

裝飾模式是一種物件結構型模式,顧名思義這個模式就是對於類進行一些「裝飾」,「裝飾」就是給物件增加一些額外的職責,使用裝飾模式比為要增加功能的物件建立乙個子類來的簡單的多,並且呼叫不同的裝飾類即可獲得不同功能的物件。

外觀模式是一種物件型結構模式,就是相當於是給內部子系統和外部加了一道門,它們進行通訊必須通過這個門,而且這個門定義了乙個高層的介面使得子系統更容易使用從而降低了系統的複雜程度。

享元模式是一種物件結構型模式,它指的是通過共享實現對於相同或相似物件的重用,這些物件都是比較相似的,它們之間的變化粒度很小。這一模式減少了這些變化粒度很小的物件在記憶體中的使用,從而降低了記憶體的負擔;而且它們的外部狀態相互獨立並且不會影響到內部狀態,所以可以在不同的環境中進行共享。

**模式是一種物件結構型模式,**在這裡就相當於是乙個「房屋中介」他負責控制控制原物件的引用。因為呼叫者沒有直接呼叫被呼叫者,所以系統耦合度大大降低,少部分**可以控制對於原物件的使用許可權,在一定程度上保護了原物件。

職責鏈模式是一種物件行為型模式,乙個客戶發出請求之後,根據具體的條件來判斷哪個物件進行處理,這條鏈可以是直線、環或者樹形結構,它將傳送請求者和請求處理者進行了解耦。

命令模式是一種物件行為型模式,在這個模式中每個請求都被封裝為乙個物件,從而方便了請求的實現以及處理方法的呼叫,也方便了對於撤銷的實現。

直譯器模式是一種類行為型模式,就相當於是乙個翻譯官,先定義要用到的「語言」即這裡的語言的文法,然後建立乙個「翻譯官」,對這段文法進行解釋,然後做出響應。

迭代器模式是一種物件行為型模式,定義了乙個方法來遍歷聚合物件,並且迭代器中增加新的聚合類和迭代器類都無須修改原**,滿足了「開閉原則」。

中介者模式是一種物件行為型模式,它相當於乙個聊天室,可以**,也可以單發,中介者的作用就是使得類中的物件不用顯式的進行引用,降低了物件之間的耦合度。

備忘錄模式是一種物件行為型模式,相當於word中的撤銷和重做,它儲存了物件的各個時間的狀態,然後進行恢復或者重做。

觀察者模式是一種物件行為型模式,它包括乙個目標和乙個監聽者,當目標發生改變時,監聽者做出相應的改變。

狀態模式是一種物件行為型模式,當物件的內部狀態發生變化時,它的行為也隨著變化,但是它的類並沒有發生變化。它有效的減少了條件語句的使用,增加了執行效率。

策略模式是一種物件行為型模式,它封裝了一些演算法,這些演算法可以進行轉換,並且這些演算法獨立於客戶存在,滿足了「開閉原則」。

模板方法模式是一種類行為型模式,將幾個不同的行為中相同的步驟封裝為固定的模版,然後實現某個行為時,只需要實現不同的步驟即可,是**復用的基本技術。

訪問者模式是一種物件行為型模式,每個「人」對於某個元素都有自己的操作,但是這些操作不改變這個元素的類。

設計模式 23種設計模式

一 軟體設計模式的概念 軟體設計模式 software design pattern 又稱設計模式,是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。它描述了在軟體設計過程中的一些不斷重 生的問題,以及該問題的解決方案。也就是說,它是解決特定問題的一系列套路,是前輩們的 設計經驗的總結...

23種設計模式

建立型 1.單件模式 singleton pattern 2.抽象工廠 abstract factory 3.建造者模式 builder 4.工廠方法模式 factory method 5.原型模式 prototype 結構型 6.介面卡模式 adapter pattern 7.橋接模式 bridg...

23種設計模式

設計模式 一書歸納出23種設計模式 1 建立型模式 前面講過,社會化的分工越來越細,自然在軟體設計方面也是如此,因此物件的建立和物件的使用分開也就成為了必然趨勢。因為物件的建立會消耗掉系統的很多資源,所以單獨對物件的建立進行研究,從而能夠高效地建立物件就是建立型模式要 的問題。這裡有6個具體的建立型...