大家来共同探讨一下这个设计模式问题吧
某基类有若干函数不知该如何放置
原因是:
对函数甲可能有几个派生类可以共用,但对其他派生类则毫无意义,而这样
的函数还比较多。而这些派生类又必须共享基类的虚接口,也就说基类本身
不能再被分割成若干基类供某些有“共性”的派生类继承了。
这样一来,至少有三种选择:
(1)将这些函数都放在基类中,这样可以达到代码共享,但缺点是造成
语义不明,更是被广泛批判的“类继承之打破封装性”之范例。
(2)将这些函数放在各个派生类中,好处是语义清晰,缺陷是代码冗余,
如果需要更改此函数,必须同时更改多处,如果漏改错改一个后果不堪
设想。
(3)设置某组合类,包含这些被共用的函数,然后将其组合进派生类中,
这样得到达到代码共享和语义清晰的好处,但如果这种共享的函数数目很多
且分散,比如派生类1、2、3共享函数1,派生类3、4、6共享函数2,则
又必然导致组合类过多且包含的“容量”太小的分散性。
各位有什么精见? 欢迎赐教!