策略模式
官方描述:(定義一系列算法糖耸,把他們封裝起來嘉竟,并且使它們可以相互替換)
白話文描述:有共同的抽象行為,具體不同的行為稱作為不同的策略舍扰,最終可以使用Context上下文獲取相對應(yīng)的策略
應(yīng)用場景:解決多重if判斷問題、聚合支付平臺边苹、第三方聯(lián)合登陸裁僧、調(diào)用多個不同短信接口等慕购。
責任鏈模式
官方描述:(將請求的發(fā)送者和接收者解耦茬底,使的多個對象都有處理這個請求的機會)
白話文描述:每一個業(yè)務(wù)模塊之間相互依賴比較有關(guān)聯(lián)、每個關(guān)聯(lián)模塊稱作為handler(處理器)使用上一個handler引用到下一個hanlder實現(xiàn)一個鏈表
應(yīng)用場景:權(quán)限控制阱表、網(wǎng)關(guān)權(quán)限控制、審批涉馁、風控系統(tǒng)等。
模板模式
官方描述:定義一個算法結(jié)構(gòu)爱致,而將一些步驟延遲到子類實現(xiàn)
白話文描述:提前定義好整體骨架,不同的行為讓字類實現(xiàn),相同的行為直接定義在抽象類中復(fù)用
應(yīng)用場景:支付的異步回調(diào)重構(gòu)牢裳、Servlet實現(xiàn)
裝飾模式
官方描述:對象間的一對多的依賴關(guān)系
白話文描述:在不改變原有對象的基礎(chǔ)上附加功能,相比生成子類更靈活
應(yīng)用場景: IO流
代理模式
官方描述:為其他對象提供一個代理以便控制這個對象的訪問
白話文描述:在方法之前和之后做一些處理蒲讯,實現(xiàn) AOP通知
應(yīng)用場景:AOP、事務(wù)判帮、日志、權(quán)限控制
觀察者模式
官方描述:對象間的一對多的依賴關(guān)系
白話文描述:在對象這間定義一對多的依賴悦昵,這樣一來,當一個對象改變狀態(tài)但指,依賴它的對象收到通知并自動更新
應(yīng)用場景:發(fā)布訂閱抗楔、事件通知、Zookeeper连躏、事件監(jiān)聽
門面模式,外觀模式
官方描述:對外提供一個統(tǒng)一的方法拍棕,來訪問子系統(tǒng)中的一群接口
白話文描述:該模式就是把一些復(fù)雜的流程封裝成一個接口供給外部用戶更簡單的使用
狀態(tài)模式
官方描述:允許一個對象在其他對象內(nèi)部狀態(tài)改變時改變它的行為
白話文描述:狀態(tài)模式與策略模式本質(zhì)上沒有很大的區(qū)別晓铆,主要根據(jù)行為決定尤蒿,如果有共同抽象行為使用策略模式幅垮,沒有共同行為使用狀態(tài)模式
適配器模式
官方描述:將一個類的方法接口轉(zhuǎn)換成客戶希望的另外一個接口
應(yīng)用場景:mybatis日志收集腰池、提供接口轉(zhuǎn)換
單例模式
官方描述:保證在一個jvm中只能有一個實例
反射機制可以破解單例
最靠譜的單例是枚舉
本文參考螞蟻課堂:http://www.mayikt.com/#