設(shè)計模式之observer and visitor
很長時間一直對observer(觀察者)與visitor(訪問者)有些分不清晰。
今天有時間進行一下梳理:
1.observer模式
這基本就是一個通知模式,當(dāng)被觀察者發(fā)生改變時,通知所有監(jiān)聽此變化的觀察者。
MVC、消息隊列等等設(shè)計有此思想。
在被觀察者中,都會存儲一個及以上的的觀察者名單(映射)
2.visitor模式
訪問者模式,主要的解決問題是,通過多態(tài)的方式解決,不同的被訪問者將會體現(xiàn)不同的形態(tài)。
當(dāng)然這個時候不同于observer模式的觀察者名單,而是用不同的接口(接口參數(shù)是觀察者實現(xiàn)類),
這樣就會出現(xiàn),擴展復(fù)雜,甚至是破壞封裝(相互之間將會調(diào)用對方的私密屬性等等)但是和其他模式一起使用就會事半功倍。
浙公網(wǎng)安備 33010602011771號