Vla*_*adp 1 oop design-patterns
这个问题困扰了我很长一段时间:
我有一个Room班级,让我说我想添加一个Ball实体.
Ball应该有x和y坐标代表这个房间的位置.
所以这是一个问题:
什么课应该保持坐标?
1)每个人Ball都是自己的.
2)Room将保持每个的坐标Ball.
我知道它可能并不重要,但什么是首选或什么更受欢迎?
编辑:
我真正担心的是,该对象可以改变它的内容,但是它受到某些第三方的限制会解决它.但我想它只对有多个用户的应用程序有效,而不是我的情况.
小智 7
在对象设计方面,我的一个开头咒语是" 对象知道自己的一切 ".想象一下球必须问房间 - 我在哪里?我会从球拿着它的坐标开始.这样,房间只需知道自己和Ball对象的集合.相反,Ball知道自己的一切.可以通过迭代集合来收集房间可能需要的关于球坐标的任何细节.当您开始向房间添加其他物体时,您的设计也会受到更少的影响.