設計模式 裝飾者模式 1

2021-08-18 14:33:23 字數 1578 閱讀 6300

一:用headfirst 設計模式--咖啡例子:

1.*----裝飾者模式----

*  1. 動態地將責任附加到物件上

*  1.1 : 以飲料為主體,然後在執行時以調料來 『裝飾』 飲料

*  *  2. 裝飾者與被裝飾者間必須要有共同超類

*  2.1 : 並非用繼承獲得行為,而是組合物件而來,並且由執行時決定

*  *  3. 通常裝飾者模式採用抽象類

*  4. 利用例項變數 "委託" 得到裝飾

* 2. 裝飾者模式基本圖

3. 作用於--飲料類

//抽象超類--元件類

public abstract class beverage

//價錢,由其子類實現

public abstract double cost(); }

package com.xjj.decorator_3;

//被裝飾者具體實現

public class houseblend extends beverage

@override

public double cost()

}package com.xjj.decorator_3;

//被裝飾者具體實現

public class espresso extends beverage

@override

public double cost()

}package com.xjj.decorator_3;

//裝飾者抽象超類

public abstract class condimentdecorator extends beverage

package com.xjj.decorator_3;

//具體裝飾者--加牛奶

//繼承(擴充套件抽象類-調味裝飾者)

public class milk extends condimentdecorator

//利用委託的做法得到裝飾

@override

public string getdescription()

@override

public double cost()

}package com.xjj.decorator_3;

public class mocha extends condimentdecorator

@override

public string getdescription()

@override

public double cost()

}package com.xjj.decorator_3;

//針對超型別程式設計

public class main

}

設計模式 裝飾者模式

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 角色 定義乙個將要接收附...