拉麵料理店中的裝飾者設計模式

2021-10-08 12:47:41 字數 2215 閱讀 2816

package july_thirtieth.decorator;

/** * 被裝飾抽象類——面

* 作用:當具體的被裝飾類有多種時,抽象提出該抽象類,用於後面實現多型。

*/public

abstract

class

noodle

package july_thirtieth.decorator;

/** * 具體的被裝飾者類—— 客人lee的麵類

* 繼承抽象的被裝飾者類,並實現其中的抽象方法。

*/public

class

leenoodle

extends

noodle

@override

void

soup()

@override

intprice()

}

package july_thirtieth.decorator;

/** * 具體的被裝飾者類—— 客人moon的麵類

* 繼承抽象的被裝飾者類,並實現其中的抽象方法。

*/public

class

moonnoodle

extends

noodle

@override

void

soup()

@override

intprice()

}

package july_thirtieth.decorator;

/** * 抽象裝飾者類——選單

* 要點:1.抽象裝飾者類中繼承該抽象類以保持介面規範

* 2.包含該抽象類的引用以通過多型的方式對多種被裝飾者類進行裝飾。

*/public

abstract

class

choosenoodle

extends

noodle

@override

void

hardness()

@override

void

soup()

@override

intprice()

}

package july_thirtieth.decorator;

/** * 可以加入的小料

*/public

inte***ce

noodledecorate

default

void

chili()

default

void

garlic()

default

void

parsley()

}

package july_thirtieth.decorator;

/** * 裝飾者類 豬豚骨麵

*/public

class

pignoodle

extends

choosenoodle

implements

noodledecorate

@override

void

hardness()

@override

void

soup()

@override

intprice()

}

package july_thirtieth.decorator;

/** * 裝飾者類 紅燒牛肉麵

*/public

class

beefnoodle

extends

choosenoodle

implements

noodledecorate

@override

void

hardness()

@override

void

soup()

@override

intprice()

}

package july_thirtieth.decorator;

public

class

noodletest

}

裝飾者設計模式的認識

我們通過乙個具體的例子來學習一下裝飾者設計模式 規則 public inte ce phone 具體類 public class callphone implements phone public abstract class phonedecorate implements phone overr...

設計模式的 C 實現 裝飾者模式

前文回顧 單例模式 一 單例模式 二 觀察者模式 簡單工廠模式 工廠方法模式 一 工廠方法模式 二 抽象工廠模式 一 抽象工廠模式 二 原型模式 外觀模式 中介者模式 模式 裝飾者模式的本質和 模式的原理是一樣的,體現了對乙個既有類進行擴充套件是的原則 除非有更好的理由採用繼承的方式 有虛函式需要重...

我的設計模式筆記 裝飾者模式

裝飾者模式要求 主體 被裝飾者 圖中的concrete component 和 裝飾 圖中的base decorator 都要繼承同乙個介面 圖中的component 其中 主體 和 裝飾 可以直接是該介面的實現,並且裝飾器 decorator 與介面是聚合關係。聚合關係 component聚合到裝...