裝飾模式
裝飾模式的做用是 使被裝飾者的功能更強大,並且裝飾後的使用方式不變java
- Io類庫中有很多不一樣功能的組合狀況,這些不一樣的功能組合都是使用裝飾者模式實現的
- 在須要各類功能的組合時,若是使用繼承來實現,會致使大量的重複類
- java io庫就是由一些基本的原始流處理器和圍繞他們的裝飾流處理器組成的
- InputStream 是以抽象組件的形式出現,而FileInputStream就是具體組件,他實現了抽象接口的全部方法,而且持有InputStream對象的引用,FileInputStream就是個裝飾類,而BufferedInputStream就是這個裝飾類的具體實現者,他給InputStream加入了新的功能,使得InputStream讀取的數據保存在內存中,從而提高讀取性能
- 在httpServlet中HttpRequestWrapper實現對Request對象裝飾,全局進行get請求字符轉碼會用到
- 和適配器模式不一樣在於
- 適配器模式處理兩個接口不一致,改變現有使其匹配
- 裝飾模式是不改變現有接口,加入新的功能