Java设计模式教程
課程大綱
架構和計算機科學中的設計模式是記錄特定專業領域中設計問題的解決方案的正式方法。 這個想法是由建筑師Christopher Alexander在建筑領域引入的,并已被改編為其他各種學科,包括計算機科學。
設計模式是在軟件設計中給定上下文中對常見問題的通用可重用解決方案。 設計模式不是可以直接轉換為源代碼或機器代碼的最終設計。 它是關于如何解決可以在許多不同情況下使用的問題的描述或模板。 模式是程序員設計應用程序或系統時可以用來解決常見問題的形式化最佳實踐。
在本課程中,您將深入研究大量的設計模式,并了解如何在Java中實現和利用它們。 您將了解模式如此重要的原因,并了解何時以及如何應用模式中的每一個。
關于作者
Rohit Joshi是消費品行業的軟件工程師。 他是Sun認證的Java程序員。 他曾在與不同領域相關的項目中工作。 他還參與系統分析和系統設計。 他主要從事Core Java和J2EE技術??方面的工作,但在Javascript和Jquery等前端技術方面也有豐富的經驗。
經驗教訓
在本課程中,您將被介紹設計模式。 您將了解什么是設計模式,為什么要在我們的代碼中使用它們,以及如何選擇和使用一種。 最后,描述了現有模式的分類。
通過一個真實的示例,您將學習如何以及何時使用Adapter模式,以及如何構造代碼以實現它。 您將看到它可以如何為代碼問題帶來優雅的解決方案。
Facade模式使用Facade類使復雜的界面易于使用。 外觀模式為子系統中的一組接口提供了統一的接口。 Facade定義了一個更高級別的界面,使子系統更易于使用。
Composite Pattern允許您將對象組合成樹狀結構以表示整體的層次結構,這意味著您可以創建由不同部分組成的對象樹,但是可以將其視為一個整體。 Composite使客戶能夠統一對待單個對象和對象組成,這就是Composite Pattern的目的。
橋接模式的目的是將抽象與其實現分離,以便兩者可以獨立變化。 它將抽象和實現放入兩個不同的類層次結構中,以便可以獨立地擴展兩者。
當必須有一個類的一個實例,并且必須從眾所周知的訪問點訪問客戶端時,或者當可以通過子類擴展唯一的實例,并且客戶端應該能夠使用時,才使用Singleton模式一個擴展實例而無需修改其代碼。
觀察者模式是一種行為模式,與對象之間的職責分配有關。 當抽象具有兩個方面,一個依賴于另一個方面,對一個對象的更改需要更改其他對象,并且您不知道需要更改多少個對象或何時一個對象應該能夠通知另一對象時,應使用該方法。對象,而無需假設這些對象是誰。 換句話說,您不希望這些對象緊密耦合。
介體模式定義了一個對象,該對象封裝了一組對象之間的交互方式。 介體通過防止對象之間顯式地相互引用來促進松散耦合,并且它使您可以獨立地更改它們之間的交互。 對象不是直接彼此交互,而是要求中介程序代表它們進行交互,這導致可重用性和松散耦合。 您將學習如何以及何時使用Mediator設計模式,以及如何構造代碼以實現它。
代理模式為另一個對象提供代理或占位符,以控制對其的訪問。 它帶來了許多不同的變化。 一些重要的變體是遠程代理,虛擬代理和保護代理。 在本課程中,我們將對這些變體有更多的了解,并將使用Java來實現它們。 但是在我們這樣做之前,讓我們先全面了解代理模式。 您將學習如何以及何時使用代理設計模式,以及如何構造代碼以實現它。
責任鏈模式是一種行為模式,其中一組對象按順序鏈接在一起,并提供一個責任(請求)以便由該組進行處理。 如果組中的對象可以處理特定的請求,它可以處理并返回相應的響應。 否則,它將請求轉發到組中的后續對象。
Flyweight模式旨在控制對象的創建,在這些對象中,應用程序中的對象非常相似且種類相似,并為您提供了基本的緩存機制。 它允許您為每種類型創建一個對象(此處的類型因該對象的屬性而異),并且如果您請求具有相同屬性(已創建)的對象,它將返回您相同的對象,而不是創建新的對象一。
構建器模式的目的是將復雜對象的構造與其表示分離,以便同一構造過程可以創建不同的表示。 這種類型的分離減小了物體的尺寸。 事實證明,該設計具有更高的模塊化,每個實現都包含在不同的構建器對象中。 添加新的實現(即添加新的構建器)變得更加容易。
工廠方法模式為我們提供了一種封裝具體類型的實例的方法。 Factory Method模式封裝了在稱為工廠方法的指定方法內部選擇和實例化適當類所需的功能。 工廠方法根據應用程序上下文和其他影響因素從類層次結構中選擇適當的類。 然后,它實例化選定的類,并將其作為父類類型的實例返回。
抽象工廠(AKA Kit)是一種設計模式,它提供了一個接口,用于創建相關或相關對象的族,而無需指定其具體類。 抽象工廠模式將“工廠方法模式”的概念提高到了一個新的水平。 抽象工廠是一個類,提供提供產生一系列對象的接口。
原型設計模式用于指定要使用原型實例創建的對象的種類,并通過復制此原型來創建新對象。 其概念是復制現有對象,而不是從頭開始創建新實例,這可能包括昂貴的操作。 現有對象充當原型,并包含對象的狀態。
有時有必要記錄對象的內部狀態。 在實施檢查點和“撤消”機制時,這是必需的,該機制使用戶退出嘗試性操作或從錯誤中恢復。 您必須將狀態信息保存在某處,以便可以將對象還原到其先前的狀態。 但是對象通常封裝了部分或全部狀態,使得其他對象無法訪問它,并且無法在外部保存。 暴露此狀態將違反封裝,這可能會損害應用程序的可靠性和可擴展性。 可以使用Memento模式完成此操作,而無需暴露對象的內部結構。
模板設計模式是一種行為模式,顧名思義,它提供了供用戶使用的模板或算法結構。 用戶無需改變算法的結構即可提供自己的實現。 模板模式定義了操作中算法的框架,將某些步驟推遲到子類。 模板方法允許子類在不更改算法結構的情況下重新定義算法的某些步驟。
狀態設計模式允許對象在其內部狀態更改時更改其行為。 該對象似乎將更改其類。 可以將對象的狀態定義為在任何給定時間點的確切條件,具體取決于其屬性或屬性的值。 由類實現的方法集構成其實例的行為。 只要它的屬性值發生變化,我們就說對象的狀態已發生變化。
策略設計模式似乎是所有設計模式中最簡單的,但它為代碼提供了極大的靈活性。 即使與其他設計模式結合使用,該模式也幾乎用于所有地方。 策略設計模式定義了一系列算法,將每個算法封裝在一起,并使它們可互換。 策略使算法獨立于使用該算法的客戶端而變化。
命令設計模式是一種行為設計模式,有助于將調用者與請求的接收者解耦。 命令設計模式的目的是將請求封裝為對象,從而使開發人員可以將具有不同請求,隊列或日志請求的客戶端參數化,并支持可撤銷的操作。
口譯員設計模式是一種重型模式。 這一切都是關于通過創建針對自己的編程語言的解釋器來組合自己的編程語言,或處理現有的編程語言。 給定一種語言,我們可以定義其語法的表示形式,以及使用該表示形式來解釋該語言句子的解釋器。
裝飾器設計模式的目的是動態地將附加職責附加到對象上。 裝飾器提供了子類別的靈活替代方案,以擴展功能。 該模式用于動態擴展對象的功能,而不必更改原始類的源或使用繼承。 這是通過在實際對象周圍創建一個稱為Decorator的對象包裝來完成的。
迭代器設計模式的目的是提供一種在不暴露其基礎表示的情況下順序訪問聚合對象的元素的方法。 迭代器模式允許客戶端對象以順序的方式訪問容器的內容,而無需了解其內容的內部表示形式。
訪客設計模式為您提供了一種在不更改元素類的情況下,在對象上添加新操作的方法,尤其是當操作經常更改時。 訪客設計模式的目的是表示要對對象結構的元素執行的操作。 訪問者可讓您定義新操作,而無需更改其所操作元素的類。
請確保轉發此消息,讓您的社交粉絲知道!
#Java設計模式教程-免費的超級課程! http://t.co/a6iVlNHFuE pic.twitter.com/XSeXbq4M5e
— Java Code Geeks(@javacodegeeks) ,2015年10月15日
翻譯自: https://www.javacodegeeks.com/2015/09/java-design-patterns.html
總結
以上是生活随笔為你收集整理的Java设计模式教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kodi安卓版打开黑屏(kodi安卓版)
- 下一篇: java实现细胞自动机_Java自动机实