当前位置:  开发笔记 > 编程语言 > 正文

遗传和多态性 - 易用性和纯度

如何解决《遗传和多态性-易用性和纯度》经验,为你挑选了1个好方法。

在一个项目中,我们的团队正在使用对象列表对数据集执行大规模操作,这些数据集应以类似的方式处理.特别地,理想情况下不同的对象将起到相同的作用,这将通过多态性非常容易地实现.我遇到的问题是继承意味着是一种关系,而不是一种关系.例如,有几个对象有一个损坏计数器,但为了使它易于在对象列表中使用,可以使用多态 - 除非这意味着一个关系是不正确的.(一个人不是破坏计数器.)

我能想到的唯一解决方案是让类的成员在隐式转换时返回正确的对象类型,而不是依赖继承.是不是更好的放弃是一个/有一个理想,以换取编程的简易性?

编辑:更具体地说,我正在使用C++,因此使用多态将允许不同的对象"行为相同",即派生类可以驻留在单个列表中并由基础的虚函数操作类.使用接口(或通过继承模仿它们)似乎是我愿意使用的解决方案.



1> Jon Limjap..:

我认为你应该实现接口,以便能够强制执行你关系(我在C#中这样做):

public interface IDamageable
{
    void AddDamage(int i);
    int DamageCount {get;}
}

您可以在对象中实现此功能:

public class Person : IDamageable

public class House : IDamageable

并且你确定DamageCount属性并且有一种方法允许你增加伤害,而不是暗示一个人和一个房子在某种层面上彼此相关.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有