天天看點

請求與響應的裝飾)裝飾模式選妃子Servlet Wrapper 類

 都說,美是天生的,小朽不以為然哦!

    

請求與響應的裝飾)裝飾模式選妃子Servlet Wrapper 類

    小姐,你的化妝粉,掉了!

  化妝(包裝,裝飾),技術來源生活。下面講講怎麼個化妝-裝飾模式

  什麼叫decorator pattern

    給一個類添加一些額外的職責,并且在添加這些額外的職責時不會控制該類的執行邏輯。 即使沒有某個對象的源代碼,甚至即使這個類申明是final的,decorator模式允許裝飾或者包裝(直白的說,修改)這個對象的行為。

  

請求與響應的裝飾)裝飾模式選妃子Servlet Wrapper 類

    小姐,化妝後真漂亮!(其實存在貶義),但化妝真能改變對象哦。

  (光化妝知道),有什麼用呢?

    decorator 模式 适用于無法使用繼承的情況,比如對象是final的,或者你自己不想親自建立對象,而是想從另一個系統中擷取。自然,裝飾不是一層哦!(小姐,妝太濃了,也不好!)我們可以對某個對象進行雙重裝飾。

  知道後,咱們也是試試化化妝。(裝飾模式案例)

  妃子都是中原的。但是有 溫柔的 ,有 野蠻的 , 有 粗暴的。(夠了夠了,小朽都惡心了。)然後應付不同的王子,你該怎麼做呢。

  (其實就是 對 妃子功能拓展 )

      

請求與響應的裝飾)裝飾模式選妃子Servlet Wrapper 類

      (各個 化妝齊全,眼都看不見了。啊哈哈)

  五步走:抽象建構  具體實作 裝飾角色 具體裝飾  測試

測試

  用圖說話。

          

請求與響應的裝飾)裝飾模式選妃子Servlet Wrapper 類

  然後,知其原理,那就學習下servlet api 4個很少用到,功能很強大的:

  servletrequestwrapper,servletresponsewrapper,httpservletrequestwrapper,httpservletresponsewrapper

  servletrequestwrapper等使用起來很友善,由于它為調用被裝在servletrequest中的對等方法的每一個方法都提

供了預設的實作。通過繼承servletrequestwrapper,隻需要覆寫想要修改的方法即可。如果沒有

servletrequestwrapper,隻好直接實作servletrequest,并為每個接口每個方法寫實作。(例子中也可以看到好處。)

 

請求與響應的裝飾)裝飾模式選妃子Servlet Wrapper 類

            裝飾servletrequest