我最近开始玩 Haxe,在使用 AS3 一段时间后,在编写一个非常简单的游戏引擎时遇到了问题:
我有一堂课叫World
. 其中一件事World
就是跟踪Entity
游戏中的所有对象。我希望这个Entity
对象列表只能从引擎内部访问。引擎的用户应该不能直接修改列表。
在 AS3 中,我可以简单地使用internal
关键字来访问同一包中的其他类。当这还不够时,我可以定义一个自定义命名空间并将其用作我的访问修饰符。但 Haxe 似乎没有这两个。
TL;DR:如何限制对特定包/命名空间的变量访问?如果不可能,我还有什么其他选择?