看板 Programming 關於我們 聯絡資訊
※ 引述《march20 ()》之銘言: : ※ 引述《tinlans ( )》之銘言: : : 其實我比較好奇的是, : : 「交通工具」這種分類有什麼共通特性和介面值得你把它抽出來? : : 要不要考慮拿掉這個 class? : 我猜在他在"交通工具" 實作了某些 utility. : 如果是這樣, 應該是把 "交通工具" 變成 pure interface, : 然後把這些 utility function 提取到 TrafficUtil, MillageUtil 才對.. 他講的水陸兩用車, 讓我覺得分類法應該是以功能做分類, 繼承樹應該建立在「移動方式」的行為上, 各種交通工具只是以合成或聚合的方式去使用這些行為物件, 這樣水陸兩用車就可以直接繼承交通工具 (如果真的有必要留交通工具的話)。 第二行到第四行簡單來說就是 strategy pattern。 -- Ling-hua Tseng ([email protected]) Department of Computer Science, National Tsing-Hua University Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design Researching: Software pipelining for VLIW architectures Homepage: https://www.tinlans.org -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.105.128
march20:strategy 的型是在, 但交通工具似乎不太 66.75.255.220 07/17 00:18
march20:需要 "可抽換" (除非是變型金鋼或是 66.75.255.220 07/17 00:20
march20:在 model 路線中的交通工具選擇), 不然頂 66.75.255.220 07/17 00:20
march20:多就是個 composite 吧 (就你舉的 case) 66.75.255.220 07/17 00:21
march20:("頂多" 不太對, 應該說 "只需要") 66.75.255.220 07/17 00:24
tinlans:strategy 除了強調可抽換外還有歸納行為成118.160.105.128 07/17 15:36
tinlans:一族系的用途,不抽只是不用部分特性罷了118.160.105.128 07/17 15:37
tinlans:,而且要做成可抽也是有理由,因為不可能118.160.105.128 07/17 15:38
tinlans:同時在水上又在陸上,可以根據環境抽。118.160.105.128 07/17 15:38
tinlans:而且做成 aggregate 也不算過度預留彈性。118.160.105.128 07/17 15:40
march20:話說, 其實原 po 一直都沒說他這幾個class 66.75.255.220 07/17 17:14
march20:是拿來做什麼的, 我個倒是猜得很開心 XD 66.75.255.220 07/17 17:14
godfat:就熱情ㄟ XD 220.135.28.18 07/17 17:26