스윙을 사용하는 자바 프로그램에 dbus 함수를 추가하려고합니다. 스크립트를 사용하여 일부 기능을 수행 할 수 있습니다. 이 작업은 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
,369 그래서 나는 다음을 수행 생각하고 있었는데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();
}
}
}
당신은 그것이 좋은 생각이라고 생각합니까? 작동할까요? 그것을하는 더 좋은 방법이 있습니까?
별도의 병에 보관하면 확실히 작동합니다. 응용 프로그램 용으로 하나의 인터페이스가 들어 있습니다. 각기 다른 플랫폼을위한 항아리. 단순히 플랫폼의 항아리를 classpath와 voila에 놓으십시오. –
프로젝트가 매우 커질 경우 Spring과 같은 Dependency Injection 프레임 워크를 살펴 보는 것이 좋습니다. 그들은 특정 인터페이스 구현이 실제로 코드에 주입되도록 관리하기 위해 특성 파일을 사용합니다. 그런 다음 각 운영 체제에 대해 별도의 등록 정보 파일을 가질 수 있습니다. –