我正在尝试设计一个简单的游戏--- Pong,Arkanoid ---严格使用"正确的OO",不管这意味着什么.
所以,通过将自己设计为死亡,我正试图达到一个下一次我会知道该做什么或不做什么的点......
谁应该处理,例如,结果?和记分?
我的第一个想法是给球做几个工作,但是开始以指数形式扩展到一个神对象:球会知道它在哪里,它撞到了谁,并向记分对象报告.
这对于糟糕的球来说太过分了.
经验法则:
如果一个对象在逻辑上拥有所涉及的所有状态,那么它拥有使用该状态的方法
如果方法需要来自多个对象的状态:
如果容器对象拥有该方法使用的所有对象,那么它也拥有该方法
否则你需要一个'bridge'对象来拥有实用方法
除非有一个强大的参数使一个对象成为该方法的"控制器"(虽然不能想到一个例子)
在你的情况下,'游戏板'或'游戏环境'可能会有一个拥有碰撞检测(实用程序/桥接)方法的"游戏物理"类(或一组方法)