紀錄 O'REILLY 深入淺出物件導向分析與設計 (Head First Object-Oriented Analysis & Design) 的讀後心得,並將範例轉為 C#.Net Code。
延續第一章 - Rick 吉他庫存管理
此章節將延續第一章的案例,來新增擴展功能,所以底下先來回顧一下「Rick 吉他庫存管理應用程式」的類別圖。
UML三種常見的依賴關係:
- Association (關聯):依賴度【弱】,交情【泛泛之交】,Key word【knows a...】,舉例【汽車與駕駛】。
- Aggregation (聚合):依賴度【中】,交情【有共同生活圈】,Key word【has a...】,舉例【汽車與輪胎】。
- Composition (組合):依賴度【強】,交情【生死與共】,Key word【owns a...】,舉例【汽車與引擎】。
改變無可避免
新增需求:「庫存增加另一種樂器曼陀林(mandolin)」。
當類別圖中的類別名稱為 斜體 時,表示該類別為 抽象類別,目的是不希望讓使用者建立該類別的實例,而是只作為其子類別的共同基礎。
檢視軟體是否設計良好
再新增需求:「庫存需要再增加四種樂器低音吉他(bass guitar)、班卓琴(banjo)、dobro吉他、小提琴(Fiddle)」。
目前的設計若庫存要新增樂器,實在不是一件容易的事,這樣實在太沒有彈性了!
彈性的軟體