天天看點

抽絲剝繭設計模式- 責任鍊模式(Chain of Responsibility Pattern)

一、關于設計模式的思考

  1.很多設計模式的差別不是文法的差別,而是語義的差別。

  2.最難的是proxy,其次是chain of responsibility,Reactor 也當作設計模式。

  3.所謂設計模式 就是把簡單問題複雜化,把變化的部分封裝那,即"封裝變化"。

  4.大部分的設計模式都是利用Java多态,多态是Java面向對象的核心。

二、請思考如下需求:

  在公衆号上發表文章,背景要經過處理才能發表和存如資料庫,每個處理政策都要檢查一遍。

三、責任鍊模式(Chain of Responsibility Pattern)

  讓多個處理請求的對象都有可能接收請求,将這些處理請求的對象連接配接成一條鍊,并且沿着這條鍊傳遞請求,直到有對象處理它為止。

  應用場景:servlet Filter、listener

四、例子

 

五、補充知識:

  1.replace的參數是char和CharSequence,既可以支援字元的替換,也支援字元串的替換(CharSequence字元串序列);

  2.replaceAll的參數是regex或者char,基于正規表達式的替換,例如通過replaceAll("\\d", "#")把一個字元串所有的數字字元都換成#号;

  3.相同點:均為全部替換,把源字元串中的某一字元或字元串全部換成指定的字元或字元串。

  4.如果隻想替換第一次出現的,使用replaceFirst(),改方法也是基于正規表達式的替換,與replaceAll()不同的時,僅替換第一次出現的字元串;

  5.如果replaceAll()和replaceFirst()所用的參資料不是基于正規表達式,則與replace()替換字元串的效果是一樣,即這兩者也支援字元串的操作;

感謝閱讀到現在,請在留言區提出寶貴的意見!

更多精彩内容,關注微信公衆号:技術嚴選