私の状況でより良い解決策は何ですか、クラスがあまり結合されないようにクラスを設計する方法は何ですか?
いくつかの機能を提供するライブラリ(API)があります(たとえば、subscribe
メソッドを使用してFX価格のストリーミングをサブスクライブします)。APIクライアントがあります。APIクライアントは、取得したい価格をAPIに通知します。APIは、メソッドを使用したいくつかのインターフェース(たとえばSubscriptionStatus
)でフィードバックを提供しますSubscribeSuccess(Subscription) and SubscribeFailed(Subscription)
。APIクライアントには、アクティブなサブスクリプションのリストがあります(List<Subscription> activeSubscriptions
)。そして、APIクライアントがサブスクリプションの成功にのみ反応するようにしたい(サブスクリプションをリストに追加するだけ)。その他の場合-メッセージを印刷してログに記録するだけです。サブスクリプションリスナーとAPIクライアント間の関係を整理するための最良の方法は何ですか?オプションは次のとおりです。
- APIクライアントインスタンスをサブスクリプションリスナーに渡して、呼び出すことができるようにします
apiClient.addSubscription(subscription)
- APIクライアントは、実装
SubscriptionStatus
インターフェイスを実装し、それらのイベントを管理します(失敗、内部で成功:activeSubscriptions.add(subscription))。対照:アクションには多くの種類があり、すべてのアクションには独自のリスナーがあります。したがって、Apiクライアントは非常に大きなクラスになります。 - 1つのメソッドで独自のインターフェースを定義
SubscriptionSuccess(subscription)
し、APIクライアントに実装させますか? - あなたのオプション?
トピックについての考えは大歓迎です!
ありがとう!