裝飾設計模式

bisnow_發表於2019-04-23

裝飾模式

裝飾模式的作用是 使被裝飾者的功能更強大,而且裝飾後的使用方式不變


裝飾設計模式


  • Io類庫中有不少不同功能的組合情況,這些不同的功能組合都是使用裝飾者模式實現的
  • 在需要各種功能的組合時,如果使用繼承來實現,會導致大量的重複類
  • java io庫就是由一些基本的原始流處理器和圍繞他們的裝飾流處理器組成的
  • InputStream 是以抽象元件的形式出現,而FileInputStream就是具體元件,他實現了抽象介面的所有方法,並且持有InputStream物件的引用,FileInputStream就是個裝飾類,而BufferedInputStream就是這個裝飾類的具體實現者,他給InputStream加入了新的功能,使得InputStream讀取的資料儲存在記憶體中,從而提升讀取效能
  • 在httpServlet中HttpRequestWrapper實現對Request物件裝飾,全域性進行get請求字元轉碼會用到
  • 和介面卡模式不同在於
    • 介面卡模式處理兩個介面不一致,改變現有使其匹配
    • 裝飾模式是不改變現有介面,加入新的功能

相關文章