作者tinlans ( )
看板Programming
标题Re: 继承和多重继承
时间Thu Jul 16 19:53:25 2009
※ 引述《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
1F:推 march20:strategy 的型是在, 但交通工具似乎不太 66.75.255.220 07/17 00:18
2F:推 march20:需要 "可抽换" (除非是变型金钢或是 66.75.255.220 07/17 00:20
3F:推 march20:在 model 路线中的交通工具选择), 不然顶 66.75.255.220 07/17 00:20
4F:推 march20:多就是个 composite 吧 (就你举的 case) 66.75.255.220 07/17 00:21
5F:推 march20:("顶多" 不太对, 应该说 "只需要") 66.75.255.220 07/17 00:24
6F:→ tinlans:strategy 除了强调可抽换外还有归纳行为成118.160.105.128 07/17 15:36
7F:→ tinlans:一族系的用途,不抽只是不用部分特性罢了118.160.105.128 07/17 15:37
8F:→ tinlans:,而且要做成可抽也是有理由,因为不可能118.160.105.128 07/17 15:38
9F:→ tinlans:同时在水上又在陆上,可以根据环境抽。118.160.105.128 07/17 15:38
10F:→ tinlans:而且做成 aggregate 也不算过度预留弹性。118.160.105.128 07/17 15:40
11F:推 march20:话说, 其实原 po 一直都没说他这几个class 66.75.255.220 07/17 17:14
12F:推 march20:是拿来做什麽的, 我个倒是猜得很开心 XD 66.75.255.220 07/17 17:14
13F:→ godfat:就热情ㄟ XD 220.135.28.18 07/17 17:26