ライブラリを交換可能にする方法を探しています。例:マルチキャストを介した通信を管理しているライブラリがあります。メインアプリケーションでそのライブラリを使用しています。私のアイデアは、そのためのインターフェースを使用することでした。
public interface MessageHandler {
public void sendMessage();
public Message receiveMessage();
}
これで、ライブラリを変更できるようになります。たとえば、ブロードキャストを介した通信を管理しているライブラリ。どちらも同じインターフェースを実装しています。
したがって、私のメインアプリケーションでは、次のような機会が必要です。
MessageHandler mHandler = new MulticastImpl();
または
MessageHandler mHandler = new BroadcastImpl();
私の問題は次のとおりです。インターフェイス定義はどこに配置しますか?メインアプリケーションに配置すると、ライブラリからは表示されません(ライブラリがメインアプリケーションを認識していないため)。両方のライブラリに配置すると、2つの異なるMessageHandler-インターフェイス(たとえば、com.multicast.MessageHandlerとcom.broadcast.MessageHandler)があります。
何か案は?