在另一个类(OOP)中访问没有静态引用的数组

时间:2015-06-01 11:09:37

标签: arrays oop pointers haxe

我是面向对象编程的新手,我为自己当前的项目设置了一个严格的目标,即不使用静态变量。在这个过程中,我将尝试了解OOP。

我使用的是Haxe语言,它是我见过的最好的语言之一。

我对C指针有一点了解,并且指针只存储变量的地址,因此它几乎是相同的变量,只占用较少的空间(特别是对于大变量)。

现在回到现在,我希望对一个类的对象数组进行指针引用,因为

  • 我希望这些对象能够互相交流,
  • 并且我不想要任何静态引用,
  • 并且我不希望每个对象都拥有该数组的副本。

我应该如何访问此阵列? 或者是否有其他OOP设计模式?

如果我出错了,请纠正我。

1 个答案:

答案 0 :(得分:2)

这篇简报中有很多问题。

您可以沿着所有变量传递上下文,它将通过指针传递

class Context{
    var level:Level=null;
    var enemies:Array<Enemy>=[];
}

class Enemy{
    var ctx:Context;
    function new(ctx){ this.ctx=ctx; }
}

class Main{
    static function main(){
        new Game(new Context());
    }
}

在游戏中,将上下文传递给每个人:

new Enemy(ctx);

等...

坦率地说,将静态用于上下​​文通常比较容易,例如

class Context{
    static var level:Level;
}

但这取决于你:)

作为旁注,所有非基元都是结构(ex数组)的指针,就像java一样。