当前位置: 代码迷 >> Java Web开发 >> 面向对象分析与设计疑义
  详细解决方案

面向对象分析与设计疑义

热度:159   发布时间:2016-04-16 21:41:22.0
面向对象分析与设计疑问
各位大侠好,小弟接触面向对象也有段时间了,可每次设计新系统时都会遇到关于对象如何拆分与设计的问题,特来请教一番。
比如,现在的系统要求有:用户,角色,积分。
用户有:用户名,密码。
角色有:角色名。
积分有:积分值,所属用户,所属模块。

通过阅读网上的帖子,我觉得:
用户对象应该包含:用户名,密码,角色对象,积分对象
code: 
class User {
  public $username;
  public $password;
  public $role;
  public $score;
}

请问是这样设计的吗?可我总感觉哪地方不对,或许我觉得,角色对象和积分对象不作为用户对象的属性,当需要获取用户对象时,重新new一下角色对象,然后将用户对象传入,这样获取用户所对应的角色。这样设计合理吗?

如果将角色、积分作为用户属性,那以后如果增加了新的元素,我不是要修改代码了吗?那样的话,用户对象就会变得好庞大。
可是如果不作为属性的话,角色、积分又确实是用户所拥有的。
------解决思路----------------------
利用关系数据库模型思想去思考。

你利用PowerDesiner把他们之间的关系把表设计出来。
------解决思路----------------------
这个合不合理,没有统一的标准。唯一的标准时,你的对象设计符合的业务需求。
------解决思路----------------------
当关系产生一对多,多对多的时候应该要采用集合。 PHP也有集合的概念的呀。
------解决思路----------------------
没有绝对的标准,可以满足业务需求即可。
  相关解决方案