OOP设计模式

Vla*_*adp 1 oop design-patterns

这个问题困扰了我很长一段时间:

我有一个Room班级,让我说我想添加一个Ball实体.

Ball应该有xy坐标代表这个房间的位置.

所以这是一个问题:

什么课应该保持坐标?

1)每个人Ball都是自己的.

2)Room将保持每个的坐标Ball.

我知道它可能并不重要,但什么是首选或什么更受欢迎?

编辑:

我真正担心的是,该对象可以改变它的内容,但是它受到某些第三方的限制会解决它.但我想它只对有多个用户的应用程序有效,而不是我的情况.

小智 7

在对象设计方面,我的一个开头咒语是" 对象知道自己的一切 ".想象一下球必须问房间 - 我在哪里?我会从球拿着它的坐标开始.这样,房间只需知道自己和Ball对象的集合.相反,Ball知道自己的一切.可以通过迭代集合来收集房间可能需要的关于球坐标的任何细节.当您开始向房间添加其他物体时,您的设计也会受到更少的影响.