設計模式五 裝飾者模式

2022-09-21 02:48:08 字數 1010 閱讀 4670

裝飾者模式指的是在不改變原類, 不使用繼承的基礎上,動態地擴充套件乙個物件的功能。

2.1 準備環境:

編寫乙個star介面, 提供sing 和 dance抽象方法

編寫乙個liudehua類,實現star介面,重寫抽象方法

public inte***ce star
public class liudehua implements star 

@override

public void dance()

}

2.2 需求:

在不改變原類的基礎上對liudehua類的sing方法進行擴充套件

2.3 實現步驟:

編寫乙個liudehuawarpper類, 實現star介面,重寫抽象方法

提供liudehuawarpper類的有參構造, 傳入liudehua類物件

在liudehuawarpper類中對需要增強的sing方法進行增強

在liudehuawarpper類對不需要增強的方法呼叫liudehua類中的同名方法

2.4 實現**如下:

liudehua類: 被裝飾類

liudehuawarpper類: 我們稱之為裝飾類

/*

裝飾模式遵循原則:

裝飾類和被裝飾類必須實現相同的介面

在裝飾類中必須傳入被裝飾類的引用

在裝飾類中對需要擴充套件的方法進行擴充套件

在裝飾類中對不需要擴充套件的方法呼叫被裝飾類中的同名方法

*/public class liudehuawarpper implements star

@override

public void sing()

@override

public void dance()

}

2.5 測試結果
public static void main(string args)

設計模式 裝飾者模式

public abstract class beverage public abstract double cost public abstract class condimentdecorator extends beverage public class darkroast extends be...

設計模式 裝飾者模式

沒什麼特別的,之前看懂了,這次自己再複述一下。畢竟把別人講懂了才是真的懂了。主要參考了head first 設計模式。例子講述的是在為星巴克咖啡的製作訂單的情況,比如客人點了飲料,那麼系統會自動算出 不知道是我沒有體會到,還是這個例子不太合適,算出 那麼簡單的事還需要用到類?不過不影響我們思考裝飾者...

設計模式 裝飾者模式

好幾天沒出部落格了,在學習android的一些新控制項的時候,用到了乙個模式,叫裝飾者模式,所以在此講講這個模式。模式,包含以下四個角色 1 抽象構件 component 角色 給出乙個抽象介面,以規範準備接收附加責任的物件。2 具體構件 concretecomponent 角色 定義乙個將要接收附...