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