类继承中相同代码函数的处理,请指教!(50分)

  • 主题发起人 主题发起人 xalndy
  • 开始时间 开始时间
X

xalndy

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟遇到如下的一个问题,请指教:
从一个类派生出多个子类,各个子类都会对某函数A进行覆盖;如果其中有多个子类的该函数代码完全相同,请问此时如何避免重复代码的Copy??
注:该段代码内会访问父类的某个数据成员B,而该数据成员的值可能会随时被修改;因此写成库函数,再引用该库的方法好像是行不通的。
请大侠们指教!谢谢!
 
把重复的代码写进父类虚函数中,
子类在需要的情况下用 inherited 继承,不需要时不用 inherited 即可。
 
还有一种方法,在父类中增加一个静态函数,把子类经常用到的代码段写进去,子类看情况是否调用该函数。
 
让这几个具有相同行为的类都继承自一个抽象类即可。

eg:

原来的情况:
TRoot
->
TA, TB, TC, TD
其中TB,TC,TD中有一些覆盖父类的方法代码完全相同。

转换后:
TRoot
->
TA,TMid ——在TMid中写好覆盖TRoot类的方法的代码。

TMid
->
TB,TC,TD ——这些类不用重写在TMid中已经定义了的通用方法。


ps:
这个问题似乎应该被转移到设计模式分类去...
 
多继承一层也行啊
 
新建 <一个类> 的子类TCObject,定义并实现<相同函数A>
具有相同函数A的子类不要直接继承<一个类>而继承于<TCObject>
 
多人接受答案了。
 
后退
顶部