我正在寻找一种使库可替换的方法。例如:我有一个管理组播通信的库,我在我的主要应用程序中使用该库。我的想法是为此使用接口:
public interface MessageHandler {
public void sendMessage();
public Message receiveMessage();
}
现在可以更改库了。例如,一个管理广播通信的库。两个库都实现了相同的接口。
因此,在我的主应用程序中,我希望有以下机会:
MessageHandler mHandler = new MulticastImpl();
或者
MessageHandler mHandler = new BroadcastImpl();
我的问题是:接口定义应该放在哪里?如果我把它放到主应用程序中,库就看不见它了(因为库不知道主应用程序)。如果我把它放到两个库中,我就会有两个不同的MessageHandler-Interface(例如com.multicast.MessageHandler和com.broadcast.MessageHandler)。
有什么建议吗?