1

モバイル クライアントで特定の API 呼び出しやその他の長時間実行されるタスクを管理するためのフレームワークを設計しています。私はそれを基本的なJavaプログラムで設計および実装し、クライアント開発者に渡してフレームワーク内のクラスを拡張し、コンテキスト固有のものを実行する具体的なクラスを実装します。

タスクを待機しているコンポーネントにマネージャーが通知を送信する場所があります。ここで、クライアントが自分自身をリスナーとして登録できるAbstractManagerメソッドを呼び出して、タスクがいつ終了したかを知ることができます。registerClient(Messenger m)

抽象化しておきたいのであれば、それがMessengerオブジェクトであるとは言えません。各アプリとプラットフォームは通知の異なる実装を使用する可能性があります。registerClientこれをどのように実装できるように設計するにはどうすればよいですか?

4

3 に答える 3

5

IMessenger各メッセンジャーオブジェクトを実装するために必要なインターフェース(例)を提供し、そのタイプをパラメーターにすることができます。

registerClient(IMessenger m)

インターフェイスに適切なメソッドを選択した場合(今のところほとんど同じ)、メソッドMessengerで使用できるインターフェイスの複数の実装を提供できます。registerClient()

于 2012-06-12T15:19:28.173 に答える
3

メソッドが registerClient(T Messenger) になるように汎用的にします

于 2012-06-12T15:17:13.287 に答える
2

APIインターフェイスジェネリックを作成するときは、親友です。もちろん、何が起こるかは正確にはわかりませんが、実装する必要があるインターフェイスをユーザーに提供することで、ユーザーが使用することを決定した具体的な実装で必要なことを実行できることを確認できます。

于 2012-06-12T15:17:31.210 に答える