<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-95  評論-31  文章-10  trackbacks-0
    先上圖:
    接著幾乎就明白了:一些"插件"要么讓你繼承一個抽象類要么讓你實現(xiàn)一個接口要么讓你注解一下,比如一個server服務器接收到客戶端發(fā)來的消息,那么可以用兩種方式增加攔截處理機制:1,觀察者 2,責任鏈
    如果采用觀察者:
    定義一個攔截器抽象類或者接口(主題),增加自定義處理(觀察者),然后一般就是addxxxListener或者就是addxxxIntercepter,消息業(yè)務處理最終只有一個業(yè)務組件類來處理,但是可以定義多個觀察者。
    對這條消息處理,也就是說,要把主題傳遞給觀察者,觀察者拿到進行一系列處理,觀察者用隊列,棧或者其它什么數(shù)據(jù)結構,最后一個是真正的業(yè)務處理,那么在此之前就可以做很多操作了,比如把消息存儲下來,或者把消息的一部分取出來等等。
    如果采用責任鏈:
    一般就是不純的責任鏈模式,這種方式比如servlet過濾器就采用的這種方式,還有struts2的攔截器,定義一系列過濾器鏈,這個鏈又可以采用不同數(shù)據(jù)結構隊列 棧 樹等等,可以把收到的消息進行一些額外處理,然后再傳遞給下一個鏈對象,最終由用戶定義的業(yè)務組件來處理。而這些鏈用戶可以自定義,就達到了這種效果。
    以上兩種方式唯一的不同點在于:
    采用觀察者模式,那么在中間傳遞的是主題,這個主題無法動態(tài)的改變,只能做額外處理,但傳遞的還是原本的主題對象。
    采用責任鏈模式,那么在中間傳遞的過程中,可以對主題對象做一些改變,在傳遞給下一個鏈對象。
    責任鏈模式不適應于大規(guī)模的系統(tǒng)設計,一般如果采用觀察者模式,就要對這種方式進行一些增強,比如一個觀察者處理完畢后,包裝這個主題可用裝飾者模式增強然后返回,讓下一個觀察者使用這個主題,對多個觀察者還可以使用組合模式,可以把多個觀察者改為樹結構,采用責任鏈模式也可以采用這種方法。
    代理模式也能實現(xiàn)這種攔截,也就是aop方式
    隨后寫幾個例子,openfire插件以及針對于spring mvc的一些玩法
    posted on 2013-09-26 16:34 朔望魔刃 閱讀(260) 評論(0)  編輯  收藏 所屬分類: 設計模式&&數(shù)據(jù)結構
    主站蜘蛛池模板: 免费三级毛片电影片| 毛片a级毛片免费观看免下载| 免费一级毛suv好看的国产网站| 亚洲av永久无码精品秋霞电影秋| 精品在线视频免费| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 国产高清免费视频| 四虎国产精品免费视| 国产成人精品曰本亚洲79ren| 婷婷久久久亚洲欧洲日产国码AV| 亚洲三级视频在线| 深夜a级毛片免费视频| 免费播放春色aⅴ视频| 亚洲伊人色一综合网| 国产精品免费一区二区三区| 国产在线jyzzjyzz免费麻豆| 久久久久se色偷偷亚洲精品av| 免费无码又爽又刺激聊天APP| 国产亚洲综合色就色| 国产精品亚洲精品日韩电影| 免费人成在线观看网站品爱网日本| 美女黄频免费网站| 日本牲交大片免费观看| 亚洲美女中文字幕| 国产日韩精品无码区免费专区国产| 欧美大尺寸SUV免费| 99亚洲精品卡2卡三卡4卡2卡| av无码久久久久不卡免费网站| 亚洲午夜精品久久久久久app| 国产午夜精品理论片免费观看| 国产婷婷高清在线观看免费| 亚洲久悠悠色悠在线播放| 免费视频成人片在线观看| 亚洲视频在线免费| 69av免费观看| 亚洲国产成人精品不卡青青草原| 免费无码又爽又刺激网站| 中文字幕亚洲一区二区va在线| 337P日本欧洲亚洲大胆精品| 精品亚洲综合久久中文字幕| 中文字幕高清免费不卡视频|