本文實例講述了Java設計模式之裝飾模式原理與用法。分享給大家供大家參考,具體如下:
網(wǎng)站制作、網(wǎng)站設計的關注點不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給成都創(chuàng)新互聯(lián)一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。裝飾模式能在不必改變原類文件和使用繼承的情況下,動態(tài)地擴展一個對象的功能。它是通過創(chuàng)建一個包裝對象,也就是裝飾來包裹真實的對象。JDK中IO的設計就用到了裝飾模式,通過過濾流對節(jié)點流進行包裝來實現(xiàn)功能的擴展。
裝飾模式的角色的組成:
① 抽象構件(Component)角色:給出一個抽象接口,以規(guī)范準備接收附加工功能的對象。(InputStream、OutputStream)
② 具體構件(Concrete Component)角色:定義一個將要接收附加功能的類。(節(jié)點流)
③ 裝飾(Decorator)角色:持有一個構件(Component)對象的實例,并實現(xiàn)一個與抽象構件接口一致的接口。(過濾流FilterInputStream、FilterOutputStream)
④ 具體裝飾(Concrete Decorator)角色:負責給構件對象添加上附加的功能。(帶具體附加功能的過濾流,BufferedInputStream,DataInputStream等)
以下給出一個裝飾模式的簡單的例子:
1. 抽象構件角色:定義一個接口Component
package com.tydic.decorator; //抽象構件角色 public interface Component { public void doSomething(); }