java設計模式之裝飾者模式

2021-07-26 02:20:15 字數 2212 閱讀 2564

裝飾者模式:動態的將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。

類圖:

barbecue類**實現:

package com.decorator;

public

abstract

class barbecue

public

abstract

double

cost();

}

fish類**實現:

package com.decorator;

public

class

fish

extends

barbecue

@override

public

double

cost()

}

chicken類**實現:

package com.decorator;

public

class

chicken

extends

barbecue

@override

public

double

cost()

}

meat類**實現:

package com.decorator;

public

class

meat

extends

barbecue

@override

public

double

cost()

}

barbecuedecorator類**實現:

package com.decorator;

public

abstract

class

barbecuedecorator

extends

barbecue

mala類**實現:

package com.decorator;

public

class

mala

extends

barbecuedecorator

@override

public string getdescription()

@override

public

double

cost()

}

ziran類**實現:

package com.decorator;

public

class

ziran

extends

barbecuedecorator

@override

public string getdescription()

@override

public

double

cost()

}

suanxiang類**實現:

package com.decorator;

public

class

suanxiang

extends

barbecuedecorator

@override

public string getdescription()

@override

public

double

cost()

}

例項barbecuetest類**實現:

package com.decorator;

public

class barbecuetest

}

結果:

烤雞,$:

20.0

孜然,麻辣,烤魚,$:

13.0

孜然,蒜香,烤肉,$:

35.0

好了,菜上齊了,終於可以大吃一頓了。

Java設計模式之裝飾者模式

設想乙個情景,假設有一家奶茶店,店裡面只賣飲料,不賣其他的東西,且飲料的品種只有兩種分別為coffee和milk,那麼為這家店的訂單系統可以簡單的設計為兩個類,coffee類和milk類。如果有一天,店裡面賣的飲料品種增加了很多種,這個時候我們可以發現飲料種類很多,但是每一類都可以抽象出類似的屬性和...

Java設計模式之裝飾者模式

裝飾者模式在保持原有結構不變的情況下,新建類 新增功能 去包裝原有的類。1.實體抽象類 public inte ce drink 2.具體例項實現 public class coffee implements drink override public string getdescription 3...

Java設計模式之裝飾者模式

裝飾者模式在我理解就是物件功能的封裝和傳遞的過程。我們去花店買花送人的時候會首先選哪種花,比如送老婆選的紅玫瑰,送媽媽的康乃馨等等,然後包裝走人 如果你想送大一點的,那你就得買其他的去搭配,比如101朵玫瑰,外加一些荷蘭百合,總之我們會買更多的花 在模式中我們認為有更多的操作 讓它能夠成為一束花,然...