當前位置:成語大全網 - 書法字典 - java中幾種常見的設計模式(java設計模式新手教程)

java中幾種常見的設計模式(java設計模式新手教程)

1.工廠模式:客戶類和工廠類分離。消費者在任何時候都需要壹種產品,只需向工廠提出要求。消費者可以接受不加修改的新產品。缺點是當修改產品時,工廠類也應該相應地修改。例如:如何創建它以及如何向客戶端提供它。

2.構造模式:將產品的內部表示與產品的生成過程分離,使得壹個構造過程可以生成具有不同內部表示的產品對象。這種構造方式使產品的內部外觀能夠獨立變化,客戶無需了解產品內部組成的細節。該構建模式可以強制壹步壹步的構建過程。

3.工廠方法模式:核心工廠類不再負責所有產品的創建,而是將具體的創建工作交給子類,成為壹個抽象的工廠角色,只負責給出具體工廠類必須實現的接口,而不觸及應該實例化哪個產品類的細節。

4.原始模型模式:通過給定壹個原型對象來指示要創建的對象的類型,然後通過復制該原型對象來創建更多相同類型的對象。原始模型模式允許動態增加或減少產品類別。產品類別不需要具有任何預定的層次結構,並且原始模型模式適用於任何層次結構。缺點是每個類都必須配備壹個克隆方法。

5.單例模式:單例模式確保壹個類只有壹個實例,並自己實例化它,並將這個實例單例模式提供給整個系統。單例模式應該只在有真正的“單實例”需求時使用。

6.適配器(transformer)模式:將壹個類的接口轉換為客戶端期望的另壹個接口,這樣由於接口不匹配而無法壹起工作的兩個類可以壹起工作。適配類可以根據參數向客戶端返回合適的實例。

7.橋接模式(Bridge mode):將抽象和實現解耦,使它們可以獨立更改,即將其強關聯變成弱關聯,即在軟件系統的抽象和實現之間使用組合/聚合關系而不是繼承關系,使它們可以獨立更改。

8.構圖模式:構圖模式將對象組織成樹形結構,可以用來描述整體與部分之間的關系。復合模式是壹種處理對象樹形結構的模式。合成模型以樹形結構表示部分和整體之間的關系。復合模式使客戶端能夠將單個組件對象視為由它們組成的復合對象。

9.裝飾器模式:裝飾器模式以對客戶端透明的方式擴展了對象的功能,這是繼承關系的替代方案,比繼承提供了更多的靈活性。向對象動態添加函數,並且這些函數可以動態撤銷。添加由壹些基本函數的排列和組合產生的大量函數。

10.門面模式:與子系統的外部通信必須通過統壹的門面對象進行。門面模式提供了壹個高級接口,這使得子系統更易於使用。每個子系統只有壹個facade類,並且這個facade類只有壹個實例,也就是說,它是單例模式。但是整個系統可以有多個外觀類。

11,享受模式:蠅量級是指拳擊中最輕的量級。元共享模式以* * *共享的方式有效地支持大量細粒度的對象。元享受模式中* * *享受的關鍵是區分內在狀態和外在狀態。內在狀態存儲在享受元素中,不會隨著環境的變化而變化。外在狀態隨著環境的變化而變化。外在狀態不能影響內在狀態,它們彼此獨立。將* * *可以享受的狀態和* * *不能享受的狀態從常規類中區分出來,並將* * *不能享受的狀態從類中排除。客戶端不能直接創建* * *所享受的對象,而應該使用工廠對象來創建* * *所享受的對象。享受元模式大大減少了內存中的對象數量。

12、代理模式:代理模式為對象提供代理對象,代理對象控制對源對象的引用。代理是指壹個人或壹個組織代表另壹個人或壹個組織行事。在某些情況下,客戶端不想或不能直接引用對象,代理對象可以直接充當客戶端和目標對象之間的中介。客戶端無法區分代理主題對象和真實主題對象。代理模式可能不知道真正的代理對象,而只持有代理對象的壹個接口。此時代理對象不能創建代理對象,代理對象必須由系統中的其他角色創建並傳入。

13.責任鏈模式:在責任鏈模式中,許多對象通過每個對象對其下壹個主頁的引用而連接在壹起。

站起來形成壹條鏈。請求沿著這個鏈傳遞,直到鏈中的某個對象決定處理該請求。客戶端不知道鏈中的哪個對象將最終處理該請求,系統可以動態重組鏈並分配責任,而不會影響客戶端。處理者有兩個選擇:承擔責任或將其傳遞給下壹個家庭。請求最終可能不會被任何接收器對象接受。

14.命令模式:命令模式將請求或操作封裝到壹個對象中。命令模式將發布命令的責任與執行命令的責任分開,並將它們委托給不同的對象。命令模式允許請求方和發送方是獨立的,因此請求方不需要知道接收方的接口,更不用說如何接收請求、是否執行操作、何時執行以及如何執行。系統支持命令撤銷。

15,解釋器模式:給定壹種語言,解釋器模式可以定義其語法的表示,並同時提供壹個解釋器。客戶可以使用這個解釋器來解釋這種語言的句子。解釋器模式將描述在擁有簡單語法後如何使用模式設計來解釋這些語句。解釋器模式中提到的語言是指任何解釋器對象都可以解釋的任何組合。在解釋器模式中,需要定義表示語法的命令類的層次結構,即壹系列組合規則。每個命令對象都有壹個解釋方法,表示對命令對象的解釋。命令對象層次結構中對象的任何排列和組合都是壹種語言。

16.叠代子模式:叠代子模式可以順序訪問聚合中的元素,而不會暴露聚合的內部表示。多個對象形成的集合稱為聚合,聚合對象是可以包含壹組對象的容器對象。叠代子模式將叠代邏輯封裝到壹個獨立的子對象中,該子對象與聚合本身相分離。叠代子模式簡化了聚合的接口。每個聚合對象可以有壹個或多個叠代子對象,每個叠代的叠代狀態可以相互獨立。叠代算法可以獨立於聚合角色變化。

17.中介模式:中介模式封裝了對象交互的壹系列方式,因此這些對象不必明顯地相互交互。以便它們可以松散耦合。當某些對象之間的交互發生變化時,不會立即影響其他對象之間的交互。確保這些效果可以相互獨立地改變。中介模型將多對多交互轉換為壹對多交互。中介器模型抽象了對象的行為和協作,並在小規模行為中單獨處理對象與其他對象之間的交互。

18,memento模式:memo對象是用於存儲另壹個對象內部狀態快照的對象。Memento模式的目的是在不破壞封裝的情況下捕獲對象的狀態,將其外部化並存儲起來,以便該對象可以在將來的適當時間恢復到存儲狀態。

19.觀察者模式:觀察者模式定義了與多個團隊的依賴關系,這允許多個觀察者對象同時監視壹個主題對象。當這個主題對象的狀態改變時,所有觀察者對象都將得到通知,以便它們可以自動更新自己。

20.狀態模式:狀態模式允許對象在其內部狀態改變時改變其行為。這個對象看起來好像已經改變了它的類。狀態模式將被研究對象的行為包裝在不同的狀態對象中,每個狀態對象屬於壹個抽象狀態類的子類。狀態模式的目的是當對象的內部狀態發生變化時,使其行為發生變化。state模式需要為系統的每個可能狀態創建state類的子類。當系統狀態改變時,系統會改變選定的子類。

21.策略模式:策略模式針對壹組算法,將每個算法封裝成壹個獨立的類,具有相同的接口,使它們可以相互替換。策略模式允許算法在不影響客戶端的情況下進行更改。戰略模型將行為與環境分開。環境類負責維護和查詢行為類,具體策略類中提供了各種算法。因為算法和環境是獨立的,所以算法的增加、減少和修改不會影響環境和客戶端。

22.模板方法模式:模板方法模式準備壹個抽象類,以具體方法和具體構造函數的形式實現壹些邏輯,然後聲明壹些抽象方法來強制子類實現其余邏輯。不同的子類可以以不同的方式實現這些抽象方法,因此對剩余的邏輯有不同的實現。首先做壹個頂層邏輯框架,邏輯的細節留給具體的子類來實現。

23.訪問者模式:訪問者模式的目的是封裝壹些強加在某些數據結構元素上的操作。壹旦這些操作需要修改,接受該操作的數據結構可以保持不變。訪問者模式適用於數據結構相對不確定的系統,它將數據結構與作用於結構的操作解耦,使操作集可以相對自由地演化。訪問者模式使添加新操作變得容易,這就是添加新的訪問者類。訪問者模式將相關的行為集中在壹個訪問者對象中,而不是將它們分散到單個節點類中。使用visitor模式時,應該將盡可能多的對象瀏覽邏輯放在visitor類中,而不是其子類中。訪問者模式可以跨幾個類層次結構訪問屬於不同層次結構的成員類。