gpt4 book ai didi

actionscript-3 - 为真实世界还是适当的OOP世界建模?或两者?

转载 作者:行者123 更新时间:2023-12-03 18:34:23 26 4
gpt4 key购买 nike

我正在写一个游戏,其中鼠标驱动的 Controller 对象单击玩家对象以使其执行某项操作。

有两种方法可以启动鼠标和播放器之间的交互:

  • Controller 调用播放器的功能:
    Controller 监听鼠标事件。当鼠标单击出现在屏幕上的任何位置时, Controller 将在单击的点下方搜索所有对象。如果其中一个对象是播放器对象,并且其“clickable”属性为true,则调用其适当的函数。
  • 播放器调用 Controller 的功能:
    播放器监听鼠标事件。当在播放器上单击鼠标,并且播放器自己的“clickable”属性为true时,请调用 Controller 的适当功能。

  • 我的困境是,第一个选项似乎更直观地了解现实世界中发生的场景,但是第二个选项在正确的面向对象设计中似乎更直观,因为它不需要查看另一个对象的属性,这违反了某种程度上的封装( Controller 必须调查播放器以读取其“clickable”属性)。此外,第二个选项似乎与“ Controller ”设计模式保持一致。

    这对我来说一直都是一个挣扎-我是否无视正确的面向对象设计(例如选项1)还是使用一种似乎与现实世界背道而驰的实现(例如选项2)?

    我希望我缺少某种中间立场。

    最佳答案

    This is always a struggle for me -- do I defy proper object-oriented design (e.g. option 1) or do I use an implementation that seems counterintuitive to the real world (e.g. option 2)?



    我认为面向对象的目的不是为现实世界建模。

    我认为OO模型经常遵循现实世界模型的一个(the?)原因是现实世界变化不大:因此选择现实世界作为模型意味着软件不会变化很大,即维护成本低廉。

    对真实世界的忠实本身并不是设计目标:相反,您应该尝试使其他指标最大化的设计,例如简单。

    “面向对象”中的“对象”是软件对象,不一定是现实世界中的对象。

    关于actionscript-3 - 为真实世界还是适当的OOP世界建模?或两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354312/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com