【发布时间】:2014-11-17 23:03:27
【问题描述】:
我正在开发一个程序,它应该有“模块”,人们可以从 API 编写自己的代码,然后他们可以添加他们的 Modules 之一,假设它叫做 ModuleNicerText,他们将其作为 .java 类(源代码)添加到 MyProgram\Modules 文件夹,该类实现 Module。
Module 类有一个方法(好吧,它有更多,但为了这篇文章我会说一个),称为onUpdate(),我希望能够以某种方式将该类导入我的代码,然后在需要时运行.onUpdate(),我希望我解释得足够好,如果我还没有,那么这里是另一个例子:
我有一个接口,名为Module
这是Module的正文:
public interface Module {
void onUpdate();
}
现在,我的主类名为MyProgram,在该类中我有这个方法:
public void onUpdate(){
for (Module module : modules){
module.onUpdate();
}
}
我使用这种系统,所以我可以轻松地添加或删除组件,而不必弄乱一堆东西,如果它们都挤在一个类/方法中。
现在,程序运行时会创建一个目录MyProgram\Modules,任何想要的人都可以添加一个扩展Module接口的.java文件。
我希望能够查看该目录中的 .java 文件并能够为它们调用 .onUpdate() 方法,以便我的用户可以进行尽可能多的自定义!
非常感谢您提供任何帮助,并提前感谢您抽出宝贵时间阅读这堵巨大的文字墙:)
【问题讨论】:
-
你为什么要给你这样的负担?作为 API 的所有者,为什么用户将他们的代码放在特定目录中很重要?我不记得有任何 API 对其用户施加这种限制?你为什么要与众不同?
-
@hfontanez 我认为路径实际上并不重要。这里真正的问题是 OP 需要编译源文件并从中创建一个对象。
-
@Radiodef 也许你不这么认为,但这正是 OP 写的。我试图做的可能是重申他的问题,或者重新考虑他/她的策略。
-
@hfontanez 我想我的观点是 “导入和使用” 比 “来自指定路径” 是一个更大的问题。
标签: java customization