在另一个 class 中访问没有静态引用的数组(OOP)
Accessing an array without static references in another class (OOP)
我是面向对象编程的新手,我为自己当前的项目设定了一个严格的目标,即不使用静态变量。在这个过程中我会尝试学习OOP。
我使用的是 Haxe 语言,它是我见过的最好的语言之一。
我对 C 指针了解一点,指针只存储变量的地址,所以它几乎是同一个变量,只是占用更少space(尤其是对于大变量)。
现在回到现在,我想要一个对象数组的指针引用 class 因为
- 我想让这些对象相互交互,
- 而且我不想有任何静态引用,
- 而且我不希望 每个 对象都保存该数组的副本。
我应该如何访问这个数组?
还是有其他的 OOP 设计模式之类的?
如有不妥请指正
这篇简报中有很多问题。
您可以只传递所有变量的上下文,它将通过指针传递
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。
我是面向对象编程的新手,我为自己当前的项目设定了一个严格的目标,即不使用静态变量。在这个过程中我会尝试学习OOP。
我使用的是 Haxe 语言,它是我见过的最好的语言之一。
我对 C 指针了解一点,指针只存储变量的地址,所以它几乎是同一个变量,只是占用更少space(尤其是对于大变量)。
现在回到现在,我想要一个对象数组的指针引用 class 因为
- 我想让这些对象相互交互,
- 而且我不想有任何静态引用,
- 而且我不希望 每个 对象都保存该数组的副本。
我应该如何访问这个数组? 还是有其他的 OOP 设计模式之类的?
如有不妥请指正
这篇简报中有很多问题。
您可以只传递所有变量的上下文,它将通过指针传递
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。