看板 C_and_CPP 關於我們 聯絡資訊
第一道問題是 要選擇繼承,還是組合? 例如: 汽車要繼承引擎, 還是汽車要包含一個引擎成員? 汽車繼承引擎的話, 自然的就擁有發動、加油等功能, 跟日常看到的一樣。 但它們之間並沒有 is a 的關係… 又例如: 物件計數器 template 〈class T〉 class counter {建構加一,解構減一} 如果要統計汽車物件數量, 要繼承好,還是包含好? 第二個問題: 以生產線模擬來說, 一台機台完成動作後 要通知下一台「輪到你了」 所以機台要「認識」其他機台。 class machine{ machine *other; } 但這樣一來, machine 裡有machine, 如果有個人想搞怪, 一直 new 下去, 這樣是不是就變成 machine = 生產線 ? 我可以接受一些 tree 結構採取 自己裡面有自己的指標設計, 但就很難接受一個 活生生的、現實的例子這樣作… 是我太欠缺美感, 還是太鑽牛角尖所致嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.28.215.7 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1459497626.A.AEB.html
Neisseria: 找些 object-oriented design 的書來看,會有幫助04/01 16:06
Neisseria: http://www.sandimetz.com/products/ 可參考04/01 16:07
Neisseria: 雖然是用 Ruby,不過這本評價蠻好的04/01 16:08
rodion: 說美感太抽象 我以為OO只是達成高內聚低耦合的方法之一04/01 16:14
rodion: 應該思考的是如何寫 才能更容易擴充與維護04/01 16:15
noodleT: 我也想高維護性,但老闆總是說能動就好04/01 16:17
noodleT: 還是較希望是 c++ 中文版好04/01 16:19
longlongint: 嗯 那你應該先說服你老闆 不然他會覺得你浪費時間又04/01 17:14
longlongint: 沒產出04/01 17:14
是不是傳統產業都比較偏向於 程式能動就好? ※ 編輯: noodleT (110.28.215.7), 04/01/2016 17:55:26
james732: 通常老闆都會覺得會動就好XD04/01 17:56
Caesar08: 應該是大部分人都覺得 程式能動就好,不是只有你老闆04/01 18:17
weiclin: 那你可以接受將通知下一台的邏輯移到新的類別嗎?04/01 19:53
weiclin: 例如生產線類別,裡面很多機台,就負責把產出餵給下一台04/01 19:55
多一個生產線類別來控管 感覺挺不錯的
weiclin: 或許你可以參考 Domain Driven Design 的思路04/01 19:58
CLANNAD: OO不是要你模擬現實 也不用什麼美感04/01 20:09
CLANNAD: 只要考慮內聚力 耦合性 職責這堆東西就好了04/01 20:10
OO不是把現實的屬性、 功能轉成類別嗎? ※ 編輯: noodleT (110.28.215.7), 04/01/2016 23:27:26
legendmtg: 不是 很多類別會是抽象的概念 而不是現實的"東西" 04/02 00:09
legendmtg: 推薦這本書 http://tinyurl.com/4j3d5h7 04/02 00:19
weiclin: 設計類別如果能對應到現實的概念,能幫助理解 04/02 00:34
weiclin: 但如果不適合還硬套的話就只有反效果 04/02 00:48
noodleT: 謝謝 04/02 07:37
farmerlu: C++ 是藝術.前二題比較簡單.第三題.每一機台要認識幾台? 04/21 19:33