[模式] 裝飾者模式(decorator)只有一種結構嗎?
今天上課講到decorator pattern,我有個疑問就是,為什麼設計上不寫成這樣
abstract class 主餐
{
protect 副食品 list;
abstract public int cost();
}
class 豬排 : 主餐
{
public override int cost()
{
return 130 + all list cost;
}
}
...
abstract class 副食品
{
}
class 味增湯 : 副食品
{
public override int cost()
{
return 50;
}
}
...
那個all list cost在哪邊做先不管,我的意思是UML繼承架構不要讓副食品繼承主餐,
而是讓而是用 1--------------* 把主餐與副食品連起來,我覺得這樣更加直覺,但
教授說這兩者完全不同,decorator有pipeline的概念; 而在我的想法中 副食品 變成
互為獨立,失去順序的概念,請問有沒有什麼情況一定要用decorator才能完成的case?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.153.23
※ 編輯: worldxxi 來自: 114.45.153.23 (01/10 17:05)
推
01/10 20:51, , 1F
01/10 20:51, 1F
→
01/11 07:01, , 2F
01/11 07:01, 2F
→
01/12 22:09, , 3F
01/12 22:09, 3F
→
01/12 22:09, , 4F
01/12 22:09, 4F
→
01/13 07:02, , 5F
01/13 07:02, 5F
→
01/13 07:03, , 6F
01/13 07:03, 6F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 5 篇):
OOAD 近期熱門文章
PTT數位生活區 即時熱門文章