私の状況ではどのような解決策がありますか?密接に結合されたクラス:私の状況でより良いデザインとは何か
私はいくつかの機能を提供するライブラリ(API)を持っています(例えば、subscribe
メソッドでストリーミングFXの価格を購読する)。私はAPIクライアントにAPIを教えてもらうことに決めました。 APIは、SubscribeSuccess(Subscription) and SubscribeFailed(Subscription)
の方法でいくつかのインターフェイス(たとえばSubscriptionStatus
)でフィードバックを提供します。 APIクライアントでは、アクティブなサブスクリプション(List<Subscription> activeSubscriptions
)のリストがあります。そして、私はAPIクライアントがサブスクリプションの成功に反応することを望みます(リストにサブスクリプションを追加するだけです)。それ以外の場合は、ログに記録するだけです。 サブスクリプションリスナーとAPIクライアントの関係を整理する最良の方法は何ですか? オプションは次のようになります。
- パスAPIのクライアントインスタンスのサブスクリプション・リスナーにそれが(内部的に、成功を失敗:activeSubscriptions.add(サブスクリプション))を
SubscriptionStatus
インタフェースを実装し、それらのイベントを管理する実装apiClient.addSubscription(subscription)
- APIクライアントを呼び出すことができますので、 。コントラ:たくさんの種類の行動があり、すべての行動はそれ自身のリスナです。だから、Apiクライアントは本当に大きなクラスになります。
- 独自のインターフェイスを1つのメソッド
SubscriptionSuccess(subscription)
で定義し、APIクライアントに実装させますか? - オプションはありますか?
トピックに関するご意見はありがとうございます。
ありがとうございます!