Java設計模式 裝飾者模式

2021-06-29 03:36:34 字數 1597 閱讀 9855

動態的將責任附加到物件上,想要擴充套件功能,裝飾者提供有別於繼承的另一種選擇

這種比繼承更加靈活機動的特性,也同時意味著更加多的複雜性。裝飾模式會導致設計中出現許多小類,如果過度使用,會使程式變得很複雜。

例:

package com.cn.gaoyan;

// 公共抽象介面

public

abstract

class beverage

public

abstract

double

cost();

}

package com.cn.gaoyan;

//被裝飾者例項

public

class

espresso

extends

beverage

@override

public

double

cost()

}

package com.cn.gaoyan;

//被裝飾者例項

public

class

houseblend

extends

beverage

@override

public

double

cost()

}

package com.cn.gaoyan;

//裝飾者

public

abstract

class

decoratorbeverage

extends

beverage

package com.cn.gaoyan;

//裝飾者例項

public

class

mocha

extends

decoratorbeverage

@override

public string getdescription()

@override

public

double

cost()

}

package com.cn.gaoyan;

//裝飾者例項

public

class

milk

extends

decoratorbeverage

@override

public string getdescription()

@override

public

double

cost()

}

package com.cn.gaoyan;

//main()

public

class maintest

}

Java設計模式 裝飾者模式

愉快的工作又開始了。leader安排了乙個新的任務,給乙個酸奶店的點單軟體增加新的功能。這個程式的原來所有的酸奶都繼承於乳酪類 cheese public abstract class cheese public abstract intprice 所有具體的酸奶繼承乳酪類並重寫 price方法,以...

Java設計模式 裝飾者模式

定義 裝飾模式指的是在不必改變原類檔案和使用繼承的情況下,動態地擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。我們拿買蛋糕做乙個例子吧!場景 我們去甜品店買蛋糕,裡面有各種口味的蛋糕。當你想買乙個適合你口味的蛋糕,而店員卻告訴你想要蛋糕沒有。那怎麼辦呢?別灰心,店員會...

Java 裝飾者設計模式

1 首先定義乙個介面 public inte ce worker 2 定義乙個木匠類 public class carpenter implements worker 3 定義乙個水管工類 public class plumber implements worker 4 這兒是關鍵,定義乙個裝飾者類...