作者H45 (!H45)
看板OOAD
标题[其他] 进板画面 - 悟剑汉堡店
时间Thu Oct 30 00:13:13 2008
^L10
《悟剑分析与设计王国》
-------------------------------------------------------------------------
2008/10/30
您刚录取「悟剑汉堡店」的软体设计师,老板要求您立即修改公司内的「结帐系统」
马上开工的您一打开原始码发现不得了,紊乱又复杂的继承树使得程式大而赘:
┌─────────────────────────────┐
│ 汉堡 │
└─────────────────────────────┘
↑ ↑ ↑ ↑
┌────┐┌────┐ ┌────┐ ┌────┐
│牛肉汉堡││鸡肉汉堡│ │猪肉汉堡│ │鱼肉汉堡│
└────┘└────┘ └────┘ └────┘
↑ ↑ ↑ ↑
┌──────┐┌──────┐┌──────┐ ┌──────┐
│牛肉汉堡加蛋││鸡肉汉堡加蛋││猪肉汉堡加蛋│ │鱼肉汉堡加蛋│
└──────┘└──────┘└──────┘ └──────┘
↑ ↑ ↑
┌─────────┐┌───────┐┌───────────┐
│牛肉汉堡加蛋加培根││鸡肉汉堡加培根││双层猪肉汉堡加两片培根│
└─────────┘└───────┘└───────────┘
(10 秒後自动跳转......)
^L10
┌───────────┐┌─────────────┐
│辣味牛肉汉堡不加小黄瓜││鱼肉汉堡淋柠檬汁加两片起士│........
└───────────┘└─────────────┘
(一个方块就是一个类别)
牛肉汉堡加蛋加培根是一个牛肉汉堡加蛋;牛肉汉堡加蛋是一个牛肉汉堡;
牛肉汉堡是一个汉堡,感觉是否有些不太对?请分析问题所在,并且重新设计这个系统
来解决问题。
别忘了,老板说以後可能还会推出各种不同客制化的汉堡,好比说:三层牛肉汉堡
加三层起士再加三片培根……
还有,提醒您,物价随时在变化,那些笨笨的低价劳工可不懂怎麽修改程式码来反应物
价的涨跌。
(结束)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.247.13
1F:推 hgs1906 :很有head first 的味道 XD 10/30 00:22
2F:推 xam :不是要用 decorator 吗 10/30 01:09
3F:→ H45 :是啊 :D 这题目改编自 head first 的 decorator 10/30 03:24
4F:推 diablorex :好眼熟XD 10/31 01:02
5F:推 KanoLoa :解答呢(敲碗 XD 11/14 22:23
6F:推 askeing :哈哈~有Head First的味道 XD 11/17 16:04