大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 適合小白學習的設計模式教程

適合小白學習的設計模式教程

更新時間:2021-10-18 12:21:51 來源:動力節點 瀏覽1185次

設計模式在軟件開發人員中非常流行。設計模式是對常見軟件問題的詳細描述的解決方案

適合小白學習的設計模式教程

Java設計模式

使用設計模式的一些好處是:

設計模式已經定義并提供了行業標準方法來解決重復出現的問題,因此如果我們明智地使用設計模式可以節省時間。我們可以在基于 Java 的項目中使用許多 Java 設計模式。

使用設計模式可提高可重用性,從而產生更健壯和高度可維護的代碼。它有助于降低軟件產品的總擁有成本 (TCO)。

由于已經定義了設計模式,它使我們的代碼易于理解和調試。它可以加快開發速度,并且團隊的新成員很容易理解它。

Java設計模式分為三類——創建型、結構型和行為型設計模式。

創建型設計模式

創建型設計模式提供了針對特定情況以最佳方式實例化對象的解決方案。

1.單例模式

單例模式限制類的實例化,并確保 Java 虛擬機中只存在類的一個實例。它看起來是一個非常簡單的設計模式,但是當涉及到實現時,它會帶來很多實現問題。單例模式的實現一直是開發者之間有爭議的話題。查看單例設計模式以了解實現單例模式的不同方法以及每種方法的優缺點。這是討論最多的 Java 設計模式之一。

2.工廠??模式

當我們有一個具有多個子類的超類并且基于輸入,我們需要返回一個子類時,使用工廠設計模式。這種模式將類實例化的責任從客戶端程序轉移到工廠類。我們可以在 Factory 類上應用單例模式或將工廠方法設為靜態。

3.抽象工廠模式

抽象工廠模式類似于工廠模式,它是一個工廠的工廠。如果您熟悉 java 中的工廠設計模式,您會注意到我們有一個 Factory 類,它根據提供的輸入返回不同的子類,并且工廠類使用 if-else 或 switch 語句來實現這一點。

在抽象工廠模式中,我們擺脫了 if-else 塊,為每個子類創建了一個工廠類,然后是一個抽象工廠類,它將根據輸入的工廠類返回子類。查看抽象工廠模式以了解如何使用示例程序實現此模式。

4.建造者模式

引入這種模式是為了解決當對象包含大量屬性時工廠和抽象工廠設計模式的一些問題。構建器模式通過提供一種逐步構建對象的方法并提供實際返回最終對象的方法,解決了大量可選參數和不一致狀態的問題。查看Builder Pattern,了解 JDK 中使用的示例程序和類。<

5.原型模式

當對象創建是一件代價高昂的事情并且需要大量時間和資源并且您已經存在類似的對象時,使用原型模式。所以這個模式提供了一種機制,可以將原始對象復制到一個新對象,然后根據我們的需要進行修改。此模式使用 java 克隆來復制對象。

原型設計模式要求您正在復制的對象應提供復制功能。它不應該由任何其他類完成。然而,是使用Object 屬性的淺拷貝還是深拷貝取決于需求,這是一個設計決定。

結構設計模式

結構模式提供了創建類結構的不同方法,例如使用繼承和組合從小對象創建大對象。

1. 適配器模式

適配器設計模式是結構設計模式之一,它用于使兩個不相關的接口可以一起工作。連接這些不相關接口的對象稱為適配器。作為現實生活中的例子,我們可以將移動充電器視為適配器,因為移動電池需要 3 伏才能充電,但普通插座產生 120V(美國)或 240V(印度)。因此,移動充電器充當移動充電插座和壁式插座之間的適配器。

2. 復合模式

復合模式是結構設計模式之一,當我們必須表示部分-整體層次結構時使用。當我們需要以一種必須以相同方式處理結構中的對象的方式創建結構時,我們可以應用復合設計模式。

3. 代理模式

代理模式的意圖是“為另一個對象提供代理或占位符以控制對其的訪問”。定義本身非常清晰,當我們想要提供對功能的受控訪問時使用代理模式。

假設我們有一個可以在系統上運行某些命令的類。現在,如果我們正在使用它,那很好,但是如果我們想將此程序提供給客戶端應用程序,它可能會出現嚴重問題,因為客戶端程序可以發出命令來刪除一些系統文件或更改一些您不想要的設置. 查看帶有實現細節的示例程序的代理模式帖子。

4.享元模式

當我們需要創建一個類的大量對象時,使用享元設計模式。由于每個對象都消耗對低內存設備(例如移動設備或嵌入式系統)至關重要的內存空間,因此可以應用享元設計模式通過共享對象來減少內存負載。java中的字符串池實現是享元模式實現的最好例子之一。

5. 外觀圖案

Facade Pattern 用于幫助客戶端應用程序輕松地與系統交互。假設我們有一個應用程序有一組接口來使用 MySql/Oracle 數據庫并生成不同類型的報告,例如 HTML 報告、PDF 報告等。所以我們將有一組不同的接口來處理不同類型的數據庫. 現在,客戶端應用程序可以使用這些接口來獲取所需的數據庫連接并生成報告。但是當復雜度增加或接口行為名稱混亂時,客戶端應用程序會發現很難管理它。所以我們可以在這里應用 Facade 模式,并在現有接口之上提供一個包裝器接口來幫助客戶端應用程序。查看Facade Pattern帖子以獲取實現細節和示例程序。

6. 橋接模式

當我們在接口和實現中都有接口層次結構時,橋接設計模式用于將接口與實現分離,并向客戶端程序隱藏實現細節。與適配器模式一樣,它是結構設計模式之一。

橋接設計模式的實現遵循更喜歡組合而不是繼承的概念。

行為設計模式

行為模式為對象之間更好的交互以及如何提供失去耦合和靈活性以輕松擴展提供了解決方案。

1. 模板方法模式

模板方法是一種行為設計模式,用于創建方法存根并將一些實現步驟推遲到子類。模板方法定義了執行算法的步驟,它可以提供一個默認實現,該實現可能對所有或部分子類都是通用的。

2. 中介模式

中介者設計模式用于在系統中的不同對象之間提供集中的通信媒介。中介器設計模式在多個對象相互交互的企業應用程序中非常有用。如果對象之間直接交互,系統組件之間是緊密耦合的,這使得可維護性成本更高,并且不容易靈活擴展。中介者模式專注于為對象之間的通信提供中介者,幫助實現對象間的解耦。

空中交通管制員是中介模式的一個很好的例子,其中機場控制室充當不同航班之間通信的中介。中介者充當對象之間的路由器,它可以擁有自己的邏輯來提供一種通信方式。

3.責任鏈模式

責任鏈模式用于在軟件設計中實現松散耦合,其中來自客戶端的請求被傳遞到對象鏈以處理它們。然后鏈中的對象將決定誰將處理請求以及是否需要將請求發送到鏈中的下一個對象。

我們知道在一個 try-catch 塊代碼中可以有多個 catch 塊。這里的每個 catch 塊都是處理該特定異常的處理器。所以當 try 塊中發生異常時,它會被發送到第一個 catch 塊進行處理。如果 catch 塊無法處理它,它會將請求轉發到鏈中的下一個對象,即下一個 catch 塊。如果即使是最后一個 catch 塊也無法處理它,則異常會被拋出到調用程序的鏈外。

4.觀察者模式

當您對對象的狀態感興趣并希望在發生任何更改時得到通知時,觀察者設計模式非常有用。在觀察者模式中,監視另一個對象狀態的對象稱為Observer,正在監視的對象稱為Subject。

Java 通過 java.util.Observable 類和 java.util.Observer 接口為實現觀察者模式提供了一個內置平臺。然而,它并沒有被廣泛使用,因為它的實現非常簡單,而且大多數時候我們不想為了實現觀察者模式而最終擴展一個類,因為 java 不提供類中的多重繼承。

Java 消息服務 (JMS) 使用觀察者模式和中介者模式來允許應用程序訂閱和發布數據到其他應用程序。

策略模式也稱為策略模式。我們定義了多個算法,并讓客戶端應用程序傳遞要用作參數的算法。這種模式的最佳示例之一是采用Comparator參數的 Collections.sort() 方法。基于 Comparator 接口的不同實現,對象以不同的方式進行排序。

要實現我們的文件系統實用程序,首先,我們需要創建將實際完成所有工作的接收器類。由于我們根據 Java 接口進行編碼,因此我們可以擁有 FileSystemReceiver 接口及其針對不同操作系統風格(如 Windows、Unix、Solaris 等)的實現類。

5. 訪客模式

當我們必須對一組相似類型的對象執行操作時,使用訪問者模式。在訪問者模式的幫助下,我們可以將操作邏輯從對象移動到另一個類。

例如,考慮一個購物車,我們可以在其中添加不同類型的商品(元素),當我們單擊結帳按鈕時,它會計算要支付的總金額。現在我們可以在項目類中擁有計算邏輯,或者我們可以使用訪問者模式將此邏輯移到另一個類中。讓我們在訪問者模式的示例中實現這一點。

6. 解釋器模式

用于定義語言的語法表示并提供解釋器來處理該語法。

這種模式的最好例子是一個 java 編譯器,它將 java 源代碼解釋為 JVM 可以理解的字節碼。谷歌翻譯也是解釋器模式的一個例子,其中輸入可以是任何語言,我們可以用另一種語言解釋輸出。

7. 迭代器模式

一種行為模式中的迭代器模式,它用于提供遍歷一組對象的標準方法。迭代器模式廣泛用于Java 集合框架,其中迭代器接口提供遍歷集合的方法。

迭代器模式不僅僅是遍歷一個集合,我們還可以根據我們的需求提供不同類型的迭代器。迭代器模式隱藏了遍歷集合的實際實現,客戶端程序只使用迭代器方法。

8. 紀念品模式

當我們想要保存對象的狀態以便我們以后可以恢復時,可以使用備忘錄設計模式。備忘錄模式用于以這樣的方式實現這一點,即對象的保存狀態數據在對象外部不可訪問,這保護了保存狀態數據的完整性。

Memento 模式是用兩個對象實現的——Originator 和 Caretaker。發起者是需要保存和恢復狀態的對象,它使用內部類來保存對象的狀態。內部類稱為 Memento,它是私有的,因此不能從其他對象訪問。

其他設計模式

有很多設計模式不屬于 GoF 設計模式。讓我們看看其中一些流行的設計模式

1. DAO 設計模式

DAO 設計模式用于將數據持久化邏輯解耦到一個單獨的層。當我們設計系統以使用數據庫時,DAO 是一種非常流行的模式。這個想法是將服務層與數據訪問層分開。這樣我們就在我們的應用程序中實現了邏輯的分離。

查看DAO 模式以獲取完整的詳細信息和示例程序。

2. 依賴注入模式

依賴注入允許我們移除硬編碼的依賴,并使我們的應用程序松散耦合、可擴展和可維護。我們可以在 java 中實現依賴注入,將依賴解析從編譯時轉移到運行時。Spring 框架建立在依賴注入的原則之上。

閱讀有關依賴注入模式的更多信息,以了解如何在我們的 Java 應用程序中實現它。

3.MVC 模式

MVC 模式是用于創建 Web 應用程序的最古老的架構模式之一。MVC 代表模型-視圖-控制器。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 97色在线播放 | 伊人久久在线观看 | av在线色 | 免费a级毛片出奶水 | 国产美女白丝袜精品_a不卡 | 国内精品久久久久久久影视麻豆 | 亚洲综合网在线观看首页 | 国产成人综合一区精品 | 伊人色综合久久天天网蜜月 | 欧美日韩一区二区三区麻豆 | 天天操天天干天天爽 | 欧美国产成人精品一区二区三区 | 国产99视频在线观看 | 午夜影院私人 | 免费人成黄页网站在线观看 | 99精品视频不卡在线观看免费 | 亚洲人成影院在线高清 | 久久精品国产大片免费观看 | 婷婷精品进入 | 欧美日韩乱码毛片免费观看 | 国产一久久香蕉国产线看观看 | 四虎国产精品免费久久久 | 久草视频在线免费看 | 5g天天爽影院 | 亚洲精品成人久久久影院 | 久久99蜜桃精品久久久久小说 | 91尤物视频 | 一级白嫩美女毛片免费 | 成年人国产网站 | 久久久久综合精品福利啪啪 | 尹人香蕉久久99天天拍欧美p7 | 欧美综合亚洲图片综合区 | 欧美成人免费xxx大片 | 2020国产免费久久精品99 | a级做爰视频在线观看 | 欧美成人毛片免费网站 | 色综合伊人色综合网亚洲欧洲 | 一级黄色录像视频 | 亚洲国产精品成人综合色在线婷婷 | 久久中字 | 一级片视频网站 |