Pup*_*Pup 8 oop design-patterns actionscript-3
我正在编写一个游戏,鼠标驱动的控制器对象点击一个玩家对象让它做某事.
有两种方法可以启动鼠标和播放器之间的交互:
我的困境在于,第一种选择似乎更直观,我想象现实世界中的场景,但第二种选择似乎更直观,适当的面向对象设计,因为它不需要查看另一个对象的属性,这违反了封装在某种程度上(控制器必须调查播放器以读取其"可点击"属性).此外,第二个选项似乎与"控制器"设计模式一致.
这对我来说总是很困难 - 我是否违背了适当的面向对象设计(例如选项1)或者我是否使用了与现实世界相似的实现(例如选项2)?
我希望我缺少一些中间立场.
这对我来说总是很困难 - 我是否违背了适当的面向对象设计(例如选项1)或者我是否使用了与现实世界相似的实现(例如选项2)?
我不认为面向对象的目的是模拟现实世界.
我认为OO模型经常遵循现实世界模型的一个(?)原因是现实世界没有太大变化:因此选择现实世界作为模型意味着软件不会改变很多,即维护成本低廉.
对现实世界的忠诚本身并不是设计目标:相反,您应该尝试最大化其他指标的设计,例如简单性.
"面向对象"中的"对象"是软件对象,不一定是现实世界的对象.
为什么不选择选项3,这与选项1类似?