我的問題可能不清楚或不完整,對不起。
這裏是我做過什麼
在包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() };
}
級封裝
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.
}
在包中的類不從包B.漂亮的簡單的類調用方法,但我的解決方案使用辛格爾頓和我想避免它,以及靜態方法。
導入packageB。*有什麼問題? ? – BigMike
我會假設這個方法是a)可以通過你應該使用的另一個類來訪問,或者b)有一個很好的理由隱藏。 –
@PeterLawrey是的,但類控制是公開的,它的方法是公開的,那麼導入中的「真正」問題是什麼? – BigMike