我想知道一个对另一个对象提出问题的对象是否是"坏"设计.例如...
要求:字符(对象)在网格上移动.当它试图移动到另一个位置时,它需要知道该位置是否已经被阻挡它的东西占据,或者该网格的那部分是否完全无法访问.(注意角色本身需要知道).
在应用程序中,状态持有tilemanager和charactermanager.tilemanager知道哪些瓷砖是可访问的,哪些不是.角色管理员知道角色的瓦片位置.
字符从状态调用函数是否合理,比如说AuthorizeMovement
,它确定是否可以通过其TileManager和CharacterManager进行移动,如果是,则返回true,否则返回false?
这违反了任何重要原则,导致路上的麻烦吗?
显然,这是一般化的,并且被理解为了解问题所必需的.
我不认为有什么问题。好的面向对象设计有很多原则。但其核心有四大要素:封装、继承、多态性和抽象。此外,您还需要高内聚和低耦合。这意味着您的对象/类可以适合任何地方,并且不依赖于特定的实现或类。
话虽如此,听起来您已经使用上面的内容来封装运动,并且角色将它们抽象为单独的类。所以你的角色类不会直接修改棋盘,如果是的话那就不好了。
随着您对问题有了更深入的了解,您始终可以重构代码以改进您的设计,以利用其他原则。
归档时间: |
|
查看次数: |
147 次 |
最近记录: |