【问题标题】:decoupling classes when handling common objects处理普通对象时解耦类
【发布时间】:2012-11-14 03:39:29
【问题描述】:

我的问题与处理显示对象数组时类的解耦有关。

假设正在制作 PacMan 游戏,在我的 main.as 文件中我会调用constructLevel.as 来构建关卡的不同部分(图形)。

现在假设 pacman 吃的“食物”在一个数组 foodArray 中,现在最好将 foodArray 保存在 main.as 中以便 main 可以轻松访问它,或者将 foodArray 放在constructLevel 中会更好。

在第一个场景中,constructLevel 要求 main.as 中存在适当的变量,在本例中为 foodArray。然而,在另一种情况下,main 总是需要引用constructLevel.foodArray 来获取数据,仍然是和以前一样的耦合,但是数据已经从main 转移到了constructLevel

第三种解决方案是创建一个封装所有数据的黑板。

我不确定这种情况下的最佳做法是什么。

【问题讨论】:

    标签: actionscript-3 oop design-patterns architecture


    【解决方案1】:

    我会这样做...创建类:LevelLevelConstructor。这样 LevelConstructor 将构建 Level 对象并返回它们。 因此,从 ma​​in 类中,我们创建了一个新的关卡,如下所示:

    var newLevel: Level = levelConstructor.build(..);
    

    在这种情况下,我们在 newLevel 对象中有 foodArray 和关卡的所有其他详细信息。 通过这样做,我们将关卡数据和关卡构建算法分开。 levelConstructor 对象可以具有任意数量的用于构建关卡的属性和方法,以及您的游戏需要的任何东西。

    【讨论】:

      猜你喜欢
      • 2017-01-04
      • 2022-11-25
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多