如果你需要加自定義參數,或者需要返回一個自定義的類型,請務必使用 interface 作為其類。
那是因為在 API Module 這個提供接口的模組,你應確保檔案內沒有任何實作的類別,以確保遵從依賴反轉原則。
Plugin Module 詳解
Plugin Module 是實作 API Module 內所有 服務的 模組,因此需要依賴於 API Module。
它是實現服務運作的核心,因此他也是最後建置成伺服器插件的模組。
ExampleServiceImpl 是實現 ExampleService 的 class。
public class ExampleServiceImpl implements ExampleService {
@Override
public void doSomethingCool() {
Bukkit.getLogger().info("Hello World!!");
}
}
剩下的三個 classes, 分別是註冊為 ELD 插件所需的三個組件。
TutorialLifeCycle.java
public class TutorialLifeCycle implements ELDLifeCycle {
@Inject // 實現自我使用而注入
private ExampleService service;
@Override
public void onEnable(JavaPlugin javaPlugin) {
service.doSomethingCool();
}
@Override
public void onDisable(JavaPlugin javaPlugin) {
service.doSomethingCool();
}
}
TutorialRegistry.java
public class TutorialRegistry implements ComponentsRegistry {
@Override
public void registerCommand(CommandRegistry commandRegistry) {
// no command
}
@Override
public void registerListeners(ListenerRegistry listenerRegistry) {
// no listeners
}
}