私の質問はおそらく不明確または不完全でした。申し訳ありません。
パッケージB
で私がしたことは次のとおりです。
package b.startup
public class Initialize {
public Initialize() {
CmdFactory.getInstance().setControlAdapter(new ControlAdapter());
}
}
package b.control
public class ControlAdapter implements Control {
public void start() { extLib.start() };
public void abort() { extLib.abort() };
}
パッケージA
package a.control
public interface Control {
void start();
void abort();
}
package a.cmd
public class StartCmd extends Command {
public void execute(/* Some parameters */) {
CmdFactory.getInstance.getControlAdapter().start(/* Some parameters */);
}
}
package a.factory
public class CmdFactory {
Control control;
// Constructor for default control
// Getter and Setter for control.
}
パッケージAのクラスは、パッケージBのクラスからメソッドを呼び出さないでください。非常に単純ですが、私のソリューションはSingletonを使用しており、静的メソッドと同様にそれを避けたかったのです。