【发布时间】:2013-02-08 15:06:44
【问题描述】:
我正在考虑将 dbus 功能添加到使用 swing 的 java 程序中,以便可以使用脚本来执行某些功能。 这个东西也必须在没有 dbus 的 windows 上运行。
所以我正在考虑做以下事情:
dbus.java:
import dbus; //Whatever the module is called
class dbus implements some_interface {
//blah blah
}
dbus_fake.java
class dbus_fake implements some_interface {
//full of empty methods
}
dbus_manager.java
class dbus_manager {
static some_interface get_dbus() {
try {
return new dbus(); //This should fail when loading the class, because the imports are not satisfied.
} except {
return new fake_dbus();
}
}
}
你认为这是个好主意吗?它会起作用吗?有没有更好的方法?
【问题讨论】:
-
如果你把它放在单独的罐子里,它肯定会起作用。一个用于您的应用程序,包含接口。每个不同平台都有一个罐子。只需将平台的 jar 放入类路径中即可。
-
如果你的项目非常大,你可能想看看像 Spring 这样的依赖注入框架。他们使用属性文件来管理哪些特定的接口实现实际上被注入到您的代码中。然后,您可以为每个操作系统拥有单独的属性文件。