JavaWeb開發技巧之裝飾器設計模式
假設我們遇到這樣一種情況:在頁面輸出<%= request.getParameter("content")%前,要在過濾器MyFilter要對顯示內容進行敏感詞彙進行過濾處理。那麼問題來了,由於request(即HttpRequest物件)沒有setParameter方法,在只修改MyFilter類、不改動其他程式碼的情況下,如何實現呢?
答案:利用裝飾器模式。
先來看看定義:
裝飾器模式(Decorator Pattern)允許向一個現有的物件新增新的功能,同時又不改變其結構。這種型別的設計模式屬於結構型模式,它是作為現有的類的一個包裝。
這種模式建立了一個裝飾類,用來包裝原有的類,並在保持類方法簽名完整性的前提下,提供了額外的功能。
熟悉iOS開發的童鞋會問:這跟類別很像啊!沒錯,就是跟類別一個意思,觸類旁通,哈哈……
MyFilter.java:
新建一個MyHttpRequestServlet
解決方法:引入一個request物件,解決介面難實現的問題,同時重寫介面方法:
呼叫:
相關文章
- 設計模式之-裝飾器模式設計模式
- 設計模式之【裝飾器模式】設計模式
- Go 設計模式之裝飾器模式Go設計模式
- java設計模式之裝飾器模式Java設計模式
- Java學設計模式之裝飾器模式Java設計模式
- 【趣味設計模式系列】之【裝飾器模式】設計模式
- 設計模式之裝飾器模式(decorator pattern)設計模式
- PHP設計模式之裝飾器模式(Decorator)PHP設計模式
- 設計模式----裝飾器模式設計模式
- 設計模式-裝飾器模式設計模式
- [設計模式] 裝飾器模式設計模式
- 設計模式系列之「裝飾模式」設計模式
- 設計模式之裝飾者模式設計模式
- Python設計模式-裝飾器模式Python設計模式
- 設計模式(八)裝飾器模式設計模式
- java設計模式--裝飾器模式Java設計模式
- 設計模式(六):裝飾器模式設計模式
- PHP設計模式之裝飾者模式PHP設計模式
- 設計模式之裝飾者模式(二)設計模式
- 設計模式之裝飾者模式(一)設計模式
- Java設計模式之裝飾者模式Java設計模式
- PHP設計模式- Decorator 裝飾器模式PHP設計模式
- Java 設計模式(五)《裝飾器模式》Java設計模式
- Java設計模式系列-裝飾器模式Java設計模式
- 裝飾器設計模式 - Gene Zeiniss設計模式
- Golang 常見設計模式之裝飾模式Golang設計模式
- 設計模式專題(七)裝飾器模式設計模式
- 23種設計模式(三)--裝飾器模式設計模式
- 設計模式——裝飾模式設計模式
- 設計模式-裝飾模式設計模式
- 設計模式詳解之結構型設計模式——介面卡、裝飾器設計模式
- 裝飾設計模式設計模式
- 8.java設計模式之裝飾者模式Java設計模式
- c++設計模式-裝飾器模式和代理模式C++設計模式
- 設計模式 #4 (裝飾器模式、介面卡模式)設計模式
- 原始碼中的設計模式--裝飾器模式原始碼設計模式
- C#設計模式-裝飾器模式(Decorator Pattern)C#設計模式
- 設計模式——裝飾者模式設計模式