裝飾器模式 decorator

2021-06-28 12:14:14 字數 1575 閱讀 2125

所有的說明和解釋都在**中有注釋來標明

package mode.decorator;

/** *

* 這裡定義乙個介面,在介面中定義我們要執行的操作。

* * 以後所有的裝飾器以及我們要裝飾的物件都要實現這個介面。有了這樣的大前提,我們就可以其用 sourcable來定義我們的裝飾器和要裝飾的物件了

* * */

public inte***ce sourcable

package mode.decorator;

/** *

* 所有的裝飾器都要實現sourcable介面,並且要有sourcable介面的屬性以及以sourcable介面為引數的構造方法

* * 在operation中呼叫傳入的sourcable引數對應的operation方法,當然要加入一些裝飾器自己的**,這些**就是裝飾

* * */

public class decorator1 implements sourcable

@override

public void operation()

}

package mode.decorator;

/** *

* 所有的裝飾器都要實現sourcable介面,並且要有sourcable介面的屬性以及以sourcable介面為引數的構造方法

* * 在operation中呼叫傳入的sourcable引數對應的operation方法,當然要加入一些裝飾器自己的**,這些**就是裝飾

* * */

public class decorator2 implements sourcable

@override

public void operation()

}

package mode.decorator;

/** *

* 所有的裝飾器都要實現sourcable介面,並且要有sourcable介面的屬性以及以sourcable介面為引數的構造方法

* * 在operation中呼叫傳入的sourcable引數對應的operation方法,當然要加入一些裝飾器自己的**,這些**就是裝飾

* * */

public class decorator3 implements sourcable

public void operation()

}

package mode.decorator;

/** *

* 最後是要被裝飾的物件,直接實現sourcable介面就行,並且在operation中實現自己的**

* * */

public class source implements sourcable

}

測試

package mode.decorator;

public class test

}

裝飾器模式 Decorator

設計原則 1 類應該對擴充套件開發,對修改關閉。特點 1 裝飾物件和真實物件有相同的介面。這樣客戶端物件就可以以和真實物件相同的方式和裝飾物件互動。2 裝飾物件包含乙個真實物件的引用 reference 3 裝飾物件接收所有來自客戶端的請求,它把這些請求 給真實的物件。4 裝飾物件可以在 這些請求之...

裝飾器模式(Decorator)

裝飾器模式的作用 動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾器模式比生成子類更加靈活。裝飾器模式結構圖 各個類或介面的職能 component是定義乙個物件介面,可以給這些物件增加功能。concretecomponent定義乙個具體的物件。decorator是裝飾抽象類,為物件增加功能...

裝飾器模式(Decorator)

這裡似乎可以解釋之前的乙個疑惑 裝飾器模式與物件的介面卡模式的異同 相同點 都擁有乙個目標物件 不同點 介面卡模式需要實現另外乙個介面,而裝飾器模式必須實現該物件的介面 換句話說,介面卡模式就是把乙個物件是配成另乙個物件,而裝飾器模式將豐富目標物件的功能但不改變它的介面 裝飾器的核心思想 decor...