1. 程式人生 > >設計模式--1裝飾設計模式

設計模式--1裝飾設計模式

這個設計模式我自己本來理解的是,在原來有一個類class1的情況下想要對其增加功能,就建立一個新的類class 2,然後在新類class2的屬性中有一個是原類class1的物件,然後在建構函式中對其進行初始化,隨後如果需要增加什麼功能就增加就好了.

  1. 現在看的視訊有點疑惑,一開始難道就有一個抽象父類或者介面寫好了嗎.有點想不明白.

  2. 這樣做也就只有裝飾子類可以增加新功能而已,為什麼還要抽象出裝飾類的抽象父類

算了上程式碼吧

// 抽象介面,是最頂層的抽象元件
interface Coffee
{
    public double cost();
    
    public string info();
}

// 具體類, 也就是原來的待裝飾的類
class OldCoffee implement Coffee
{
    // 價格屬性
    public price = 10;

    // 列印資訊
    public string name = "原來的咖啡";
    @Override
    public double cost(){
        return price;
    }
    @Override
    public string info(){
        return name;
    }

}

// 裝飾者抽象類
class Decorate implement c{
    // 屬性中有具體類的類物件
    OldCoffee cofe;

    // 建構函式, 將帶裝飾物件傳入
    Decorate(Coffee c1)
    {
        this.cofe = c1;
    } 
    @Override
    public double cost()
    {
        // 這裡進行具體的操作,目前在抽象類中,所有需要改變的都在具體類中改就行
        return this.cofe.price;
    }
xxx打這個好麻煩


}