哲思岛读书会 2011-07-10 18:57
浏览 189
已采纳

对一个类设计的思考

现有一个人类类:Person,他有两眼两耳两鼻一嘴,两手两脚,手和脚可以分别有写字或者打球的方法。
如果要设计这个Person,嘴可以设计一个对应的类,但有两个的怎么设计,比如两手和两脚该怎么设计。
有下面几种情况,以手为例:
一,设计一个手类,然后再设计两个子类:左手类和右手类,如下所示:
class Person{
LeftHand left;
RightHand right;
}

class Hand{}

class LeftHand extends Hand{}
class RightHand extends Hand{}

二,设计一个手类,在Person类中设计两个Hand,如下所示:
class Person{
Hand left;
Hand right;
}

class Hand{}

三,设计一个手类,在Person类中设计一个Hand的集合,如下所示:
class Person{
//key可以为left或者right
Map hands;
}

class Hand{}

大家觉得这三种方式哪种比较好?
或者还有更好的方式?
另外,我们在设计一个类且这个类还关联多个别的类的时候,有什么样的原则没?

  • 写回答

3条回答 默认 最新

  • iblike 2011-07-12 11:36
    关注

    感觉第三种更好,可扩展性更好。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?