在模块中使用接口

Using interfaces in modules

我正在尝试在 libgdx 核心模块中使用 FirebaseDatabase。我制作了界面,但我不知道我将如何使用。我的意思是我没有看到使用这样的界面。我的意思是我想要一个示例代码。例如我想从 menuScreen class.

发送一个 mesaj 到 firebas 数据库

核心接口

public interface FirebaseInterfaceInCore {
    public void sendMessage(String mesaj);
}

Class 在 android 中实现了接口

public class FirebaseAndroid implements FirebaseInterfaceInCore {

    @Override
    public void sendMessage(String mesaj) {
        FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference myRef = database.getReference("message");
        myRef.setValue(mesaj);
    }
}

android 模块的躺椅 class

public class AndroidLauncher extends AndroidApplication {
    @Override
    protected void onCreate (Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
    
      initialize(new ColorKeeper(new FirebaseAndroid()), config);
    }
}

Class 我正在 Core 开发游戏

class MenuScreen :Screen() {
override fun show() {}
override fun render(delta: Float) {}

在您的应用程序中是 main class ColorKeeper,您可以从中获取接口引用的唯一位置是此 class 的构造函数。然后你需要在某处存储对该引用的引用,稍后当你创建 MenuScreen 时将它传递到那里。然后就可以调用了。

class ColorKeeper {
  private FirebaseInterfaceInCore firebaseInterface;

  private createMenuScreen() {
    new MenuScreen(firebaseInterface);
  }

  public ColorKeeper(FirebaseInterfaceInCore firebaseInterface) {
    this.firebaseInterface = firebaseInterface;
  }
}

class MenuScreen {
  public MenuScreen(FirebaseInterfaceInCore firebaseInterface) {
    firebaseInterface.sendMessage("message");
  }
}