一、 AOP 簡(jiǎn)介 1.1 什么是 AOP AOP (Aspect Orient Programming),直譯過(guò)來(lái)就是 面向切面編程朦蕴。AOP 是一種編程思想,是面向?qū)ο缶幊?..
![240](https://cdn2.jianshu.io/assets/default_avatar/4-3397163ecdb3855a0a4139c34a695885.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
一、 AOP 簡(jiǎn)介 1.1 什么是 AOP AOP (Aspect Orient Programming),直譯過(guò)來(lái)就是 面向切面編程朦蕴。AOP 是一種編程思想,是面向?qū)ο缶幊?..
定義 在不破壞封裝性的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài)殴穴。這樣以后就可以將該對(duì)象恢復(fù)到原先保存的狀態(tài)。 結(jié)構(gòu) Originator(發(fā)起人):負(fù)責(zé)創(chuàng)建...
觀察者模式定義了一種一對(duì)多的依賴關(guān)系货葬,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽(tīng)某一個(gè)通知者對(duì)象采幌。這個(gè)通知者對(duì)象在狀態(tài)發(fā)生變化時(shí),會(huì)通知所有觀察者對(duì)象宝惰,使它們能夠自動(dòng)更新自己 結(jié)構(gòu)圖 簡(jiǎn)單實(shí)現(xiàn)...
狀態(tài)模式主要解決的是當(dāng)控制一個(gè)對(duì)象狀態(tài)轉(zhuǎn)換的條件表達(dá)式過(guò)于復(fù)雜時(shí)的情況植榕。把狀態(tài)判斷邏輯轉(zhuǎn)移到表示不同狀態(tài)的一系列類當(dāng)中再沧,可以把復(fù)雜的判斷邏輯簡(jiǎn)化尼夺。 結(jié)構(gòu) Context環(huán)境類...
介紹 模板方法模式是編程中經(jīng)常用得到的模式。它定義了一個(gè)操作中的算法骨架炒瘸,將某些步驟延遲到子類中實(shí)現(xiàn)淤堵。這樣,新的子類可以在不改變一個(gè)算法結(jié)構(gòu)的前提下重新定義改算法的某些特定步...
解析 策略模式是一種定義一系列算法的方法顷扩,從概念上來(lái)看拐邪,所有這些算法完成的都是相同的工作,只是實(shí)現(xiàn)不同隘截,它可以以相同的方式調(diào)用所有的算法扎阶,減少了各種算法類與使用算法類之間的耦...
模式動(dòng)機(jī) 對(duì)于存儲(chǔ)在一個(gè)集合中的對(duì)象,他們可能具有不同的類型(即使有一個(gè)公共的接口)婶芭,對(duì)于該集合中的對(duì)象东臀,可以接受一類稱為訪問(wèn)者的對(duì)象來(lái)訪問(wèn),不同的訪問(wèn)者其訪問(wèn)方式也有所不同...
介紹 將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使我們可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化;對(duì)請(qǐng)求排隊(duì)或者記錄請(qǐng)求日志,以及支持可撤銷的操作犀农。也稱之為:動(dòng)作(Action)模式惰赋、事物(tran...
核心 如果一個(gè)系統(tǒng)中對(duì)象之間的聯(lián)系呈現(xiàn)為網(wǎng)狀結(jié)構(gòu),對(duì)象之間存在大量多對(duì)多關(guān)系,將導(dǎo)致關(guān)系極其復(fù)雜,這些對(duì)象稱為"同事對(duì)象"。 我們可以引入一個(gè)中介者對(duì)象,使各個(gè)同事對(duì)象只跟中...
場(chǎng)景 提供一種可以遍歷聚合對(duì)象的方式呵哨。又稱為游標(biāo)cursor模式 聚合對(duì)象:存儲(chǔ)數(shù)據(jù) 迭代器:遍歷數(shù)據(jù) 結(jié)構(gòu) 實(shí)現(xiàn) 開(kāi)發(fā)中常見(jiàn)場(chǎng)景 JDK內(nèi)置的迭代器(List/Set)
定義 將能夠處理同一類請(qǐng)求的對(duì)象連成一條鏈赁濒,所提交的請(qǐng)求沿著鏈傳遞轨奄,鏈上的對(duì)象逐個(gè)判斷是否有能力處理改請(qǐng)求,如果能則處理拒炎,如果不能則傳遞給鏈上的下一個(gè)對(duì)象挪拟。 示例 鏈表方式定...
場(chǎng)景 內(nèi)存屬于稀缺資源,不要隨便浪費(fèi)击你。如果有很多完全相同或相似的對(duì)象舞丛,我們可以通過(guò)享元模式,節(jié)省內(nèi)存果漾。 核心 享元模式以共享的方式高效地支持大量細(xì)粒度對(duì)象的重用球切。 享元對(duì)象能...
迪米特法則(最少知識(shí)原則) 一個(gè)軟件實(shí)體應(yīng)當(dāng)盡可能少的與其他實(shí)體發(fā)生相互作用。 外觀模式核心 為子系統(tǒng)提供統(tǒng)一的入口,封裝子系統(tǒng)的復(fù)雜性,便于客戶端調(diào)用绒障。外觀模式 開(kāi)發(fā)中常見(jiàn)...
職責(zé) 動(dòng)態(tài)的位一個(gè)對(duì)象增加新的功能吨凑。 裝飾模式是一種用于代替繼承的技術(shù),無(wú)需通過(guò)繼承增加子類就能擴(kuò)展對(duì)象的新功能户辱。使用對(duì)象的關(guān)聯(lián)關(guān)系代替繼承關(guān)系鸵钝,更加靈活,同時(shí)避免類型體系的...
使用組合模式的場(chǎng)景 把部分和整體的關(guān)系用樹(shù)型結(jié)構(gòu)來(lái)表示,從而使客戶端可以使用統(tǒng)一的方式處理部分對(duì)象和整體對(duì)象庐镐。 組合模式核心 抽象構(gòu)件(Component)角色:定義了葉子和...
場(chǎng)景 商城系統(tǒng)中常見(jiàn)的商品分類,以電腦為例,如何良好的處理商品分類銷售的問(wèn)題? 下圖的關(guān)系我們可以用多繼承結(jié)構(gòu)來(lái)實(shí)現(xiàn) 問(wèn)題 擴(kuò)展性問(wèn)題(類個(gè)數(shù)膨脹問(wèn)題):如果要增加一個(gè)新的電...
核心作用: 通過(guò)代理,控制對(duì)對(duì)象的訪問(wèn)!可以詳細(xì)控制訪問(wèn)某個(gè)(某類)對(duì)象的方法,在調(diào)用這個(gè)方法前做前置處理,調(diào)用這個(gè)方法后做后置處理(即:AOP的微觀實(shí)現(xiàn)!),從而實(shí)現(xiàn)將統(tǒng)一...
什么是適配器模式恩商? 將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以在一起工作必逆。 模式中的角色 目標(biāo)接口(Tar...
謝謝
Java設(shè)計(jì)模式----工廠模式工廠模式實(shí)現(xiàn)了創(chuàng)建者和調(diào)用者的分離怠堪。 面向?qū)ο笤O(shè)計(jì)的基本原則: OCP(開(kāi)閉原則,Open-Closed Principle):一個(gè)軟件的實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開(kāi)發(fā),對(duì)修改關(guān)閉; D...