我有一个类,我很早就在我的 vb.net 编程经验中编写了它,它继承自另一个它确实应该组成的类。基类是一个相对通用的基于字典的嵌套集合;让我们将后代类称为“汽车”。
现在有很多代码可以做类似'MyCar!Color.st = "Red"'的事情(我使用通用集合而不是真实属性来促进与用VB6编写的代码进行数据交换,也便于比较汽车;给定三辆车 X、Y、Z,我可以例如检测 X 和 Y 之间的任何变化并将这些变化应用于 Z)。
有什么好方法可以重构代码以使用组合而不是继承?“汽车”对象应该包装哪些属性/方法,哪些应该通过数据对象属性访问?是否应该在汽车和集合对象之间定义扩大转换?进行此类重构时是否有任何问题?