設計模式--1裝飾設計模式
阿新 • • 發佈:2018-12-18
這個設計模式我自己本來理解的是,在原來有一個類class1的情況下想要對其增加功能,就建立一個新的類class 2,然後在新類class2的屬性中有一個是原類class1的物件,然後在建構函式中對其進行初始化,隨後如果需要增加什麼功能就增加就好了.
-
現在看的視訊有點疑惑,一開始難道就有一個抽象父類或者介面寫好了嗎.有點想不明白.
-
這樣做也就只有裝飾子類可以增加新功能而已,為什麼還要抽象出裝飾類的抽象父類
算了上程式碼吧
// 抽象介面,是最頂層的抽象元件 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打這個好麻煩 }