裝飾者模式在保持原有結構不變的情況下,新建類(新增功能)去包裝原有的類。
1.實體抽象類:
public inte***ce drink
2.具體例項實現:
public class coffee implements drink
@override
public string getdescription()
3.抽象裝飾類
public abstract class drinkdecoration implements drink
public float cost()
public string getdescription()
4.裝飾類子類繼承
public class milk extends drinkdecoration
public float cost()
public string getdescription()
public class sugar extends drinkdecoration
public float cost()
public string getdescription()
}5.測試類
public class demo
}6.測試結果
coffee:10.0
coffee,加乙份牛奶:12.0
coffee,加乙份牛奶,加乙份糖:13.0
coffee,加乙份牛奶,加乙份糖,加乙份牛奶:15.0
java設計模式之裝飾者模式
裝飾者模式 動態的將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。類圖 barbecue類 實現 package com.decorator public abstract class barbecue public abstract double cost fish類 ...
Java設計模式之裝飾者模式
設想乙個情景,假設有一家奶茶店,店裡面只賣飲料,不賣其他的東西,且飲料的品種只有兩種分別為coffee和milk,那麼為這家店的訂單系統可以簡單的設計為兩個類,coffee類和milk類。如果有一天,店裡面賣的飲料品種增加了很多種,這個時候我們可以發現飲料種類很多,但是每一類都可以抽象出類似的屬性和...
Java設計模式之裝飾者模式
裝飾者模式在我理解就是物件功能的封裝和傳遞的過程。我們去花店買花送人的時候會首先選哪種花,比如送老婆選的紅玫瑰,送媽媽的康乃馨等等,然後包裝走人 如果你想送大一點的,那你就得買其他的去搭配,比如101朵玫瑰,外加一些荷蘭百合,總之我們會買更多的花 在模式中我們認為有更多的操作 讓它能夠成為一束花,然...