工作中常用的設(shè)計(jì)模式

勵志當(dāng)最強(qiáng)課代表的我來給大家總結(jié)總結(jié)??????
常用的設(shè)計(jì)模式
視頻內(nèi)容:
1??策略模式??
2??責(zé)任鏈模式??
3??模板方法模式???
4??觀察者模式??
5??工廠模式??
視頻內(nèi)容:
1??策略模式??
假設(shè)有這樣的業(yè)務(wù)場景,大數(shù)據(jù)系統(tǒng)把文件推送過來,根據(jù)不同類型采取不同的解析方式。

策略模式定義了算法族,分別封裝起來,讓它們之間可以相互替換,此模式讓算法的變化獨(dú)立于使用算法的的客戶。

2??責(zé)任鏈模式??
這段代碼使用了異常來做邏輯條件判斷,如果后續(xù)邏輯越來越復(fù)雜的話,會出現(xiàn)一些問題:如異常只能返回異常信息,不能返回更多的字段,這時候需要自定義異常類。

當(dāng)想要讓一個以上的對象有機(jī)會能夠處理某個請求的時候,就使用責(zé)任鏈模式。

一個接口或者抽象類
每個對象差異化處理
對象鏈(數(shù)組)初始化(連起來)

3??模板方法模式???
假設(shè)新加一個c商戶接入,需要再實(shí)現(xiàn)一套這樣的代碼。顯然,這樣代碼就重復(fù)了,一些通用的方法,卻在每一個子類都重新寫了這一方法。

定義一個操作中的算法的骨架流程,而將一些步驟延遲到子類中,使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。它的核心思想就是:定義一個操作的一系列步驟,對于某些暫時確定不下來的步驟,就留給子類去實(shí)現(xiàn),這樣不同的子類就可以定義出不同的步驟。

一個抽象類,定義骨架流程抽象方法放一起
確定的共同方法步驟,放到抽象類(去除抽象方法標(biāo)記〉
不確定的步驟,給子類去差異化實(shí)現(xiàn)

4??觀察者模式??
登陸注冊應(yīng)該是最常見的業(yè)務(wù)場景了。就拿注冊來說事,經(jīng)常會遇到類似的場景,就是用戶注冊成功后.給用戶發(fā)一條消息,又或者發(fā)個郵件等等

觀察者模式定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被完成業(yè)務(wù)的更新。

5??工廠模式??
工廠模式一般配合策略模式一起使用。用來去優(yōu)化大量的f..else...或switch..cas...條件語句我們就取第一小節(jié)中策略模式那個例子吧。根據(jù)不同的文件解析類型,創(chuàng)建不同的解析對象
