問題タブ [interface-segregation-principle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - インターフェイス分離の原則: オプション メソッドの多い大きなインターフェイスを分割する方法
インターフェースがあるとします:
問題は、メソッドdoSpecificAction1
とメソッドdoSpecificAction2
がオプションであり、すべてのワーカーでサポートされているわけではないことです。ワーカーはdoCommonAction1
、 anddoCommonAction2
のみ、doCommonAction1
、doCommonAction2
and doSpecificAction1
、 or doCommonAction1
、doCommonAction2
、doSpecificAction2
、またはすべてのメソッドをまとめてサポートできます。
また、WorkerFactory があります。
それから私はコントローラーを持っています:
私のコードがインターフェイス分離の原則に違反していることは明らかです。私はそれをリファクタリングしたいと思います。OK、私はこのようなことをしてみます:
したがって、私のワーカーは次のようになります。
そして今、私のコントローラーはこれに変わります:
しかし、このコードは醜いように思えます。SpecificAction1AwareInterface
特にandSpecificAction2AwareInterface
はまったく関係がないため、 instanceof を使用することが良い考えであるかどうかはわかりませんWorkerInterface
。
私の状況に適したデザインパターンはありますか?前もって感謝します。
java - インターフェイスの排他的な方法を使用して if ブロックなしで比較する
次のインターフェースがあります。
エンドポイントを格納するためのリストを提供するマネージャ クラスと、そのリストからエンドポイントを取得するためのメソッドがあります。それが私がこれまでにメソッドのために行ったことです:
しかし、私たちは皆、これがどこに向かっているのかを知っています。スパゲッティ コードです...そこで、私の質問は次のとおりです。そのエンドポイントを見つけて返す最良の方法は何ですか?