gpt4 book ai didi

java - 如何在 Java 中共享类的接口(interface)而不泄露整个源代码(如 .h 文件)

转载 作者:行者123 更新时间:2023-12-01 18:54:30 25 4
gpt4 key购买 nike

我正在用 Java 构建一个基于插件的程序,我希望保持项目闭源,但允许第 3 方开发人员创建插件。我正在使用的系统正在运行,但这只是因为我(当然)拥有对源代码的完全访问权限。

基本上,插件继承自Plugin.java,并且它们可以利用ServerManager.java来执行某些关键功能。我如何使用户能够看到这些类的接口(interface)(即他们知道 ServerManager 有一个 sendMessage() 函数并且插件类可以重写 onMessage() 函数)而不向他们提供完整的源代码。

来自 Objective-C 背景,我会使用 .h 文件作为这些“接口(interface)”,使用 .m 文件作为源代码(私有(private))——然后我只提供 .h 文件——显然在 Java 中没有不过,诸如 .h 文件之类的东西!

提前致谢:)

最佳答案

一种方法是创建一个接口(interface),将其公开,并提供该接口(interface)的实现。

例如:

interface Light{
void turnOn();
void turnO();
void setBrightness(int newValue);
void setTimer(int timeoutSeconds);
}

然后在私有(private)文件中定义实际的类:

class MyLight implements Light {
void turnOn() {
// implementation
}
// etc..
}

您可以提供一个 Factory 类来为用户生成 MyLight 对象。

关于java - 如何在 Java 中共享类的接口(interface)而不泄露整个源代码(如 .h 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14561280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com