我如何在我的应用程序中使用静态成员,这是我库中的依赖项

时间:2014-06-01 18:43:52

标签: dart stagexl

我正在制作HTML5游戏引擎DartRocket,这取决于StageXL。 StageXL有一些类,它充满了静态成员,我在游戏中需要其中一些。

我的问题是我可以在我的库中使用这些静态成员(DartRocket),但我无法从使用我的库的游戏中获取它们。 基本上,因为我无法从我的游戏中看到我的图书馆的依赖性。 当我说游戏时,我的意思是我的库中的一个例子。

我的问题是:我应该如何访问这些静态成员?

我有一些解决方案:

  1. 让用户导入StageXL以便他们可以访问它们
  2. 将整个班级复制粘贴到我的图书馆
  3. 使用镜像API
  4. 我发现第一个解决方案很愚蠢,因为用户必须导入StageXL,因为我的库已经依赖它了。

    我使用第二个,因为我发现它很容易并且我想对类进行更改,但这也不理想,因为如果库的依赖性发生了变化,我必须自己更新它。 / p>

    我还没有尝试过第三种解决方案,因为我真的不喜欢使用镜像,因为它增加了代码的复杂性,使用的内容基于成员的名字(字符串)。

    一些不起作用的“解决方案”:

    1. 制作课程的实例(希望它能起作用是令人尴尬和愚蠢的:D)
    2. 扩展类(不起作用,因为不会继承静态成员)
    3. 你们有什么想法?

1 个答案:

答案 0 :(得分:2)

如果您有飞镖库,可以重新导出其他库。

例如:

StageXL库:

library stagexl;

// parts
// definitions
// ...

你的图书馆:

library dartrocket;

export 'stagexl.dart';

之后你可以使用:

import 'dartrocket.dart';

SomeStageXLClass.method();

这样用户可以使用lib并使用stagexl库中的方法和类。通过使用show关键字,您还可以定义要导出的类。

此致 罗伯特