問題タブ [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.

0 投票する
7 に答える
8897 参照

java - インターフェイス分離の原則の背後にある理由は何ですか?

Interface Segregation Principle (ISP) は、多くのクライアント固有のインターフェイスが 1 つの汎用インターフェイスよりも優れていると述べています。何でこれが大切ですか?

0 投票する
9 に答える
8821 参照

design-patterns - 空のメソッドを使用したデフォルト実装の設計パターン

空の NO-OP 実装を使用してインターフェイスのすべてまたは一部のメソッドを実装する、抽象的でない既定の実装が提供されるシナリオを説明する特定の設計パターンはありますか。これは、サブクラス自体が必要/使用しない可能性のあるメソッドを実装する負担をサブクラスに軽減することを目的として行われています。

SAX フレームワークの Java の DefaultHandlerMouseAdapterなど、このパターンが何度も使用されているのを見てきました。場合によっては、そのようなクラスはアダプターと呼ばれますが、アダプター パターンは 2 つの異なるインターフェイス間で変換されるという印象を受けました。

これらのインスタンスでは、そのインターフェイスの未定義のサブセットに変換されている宣言されたインターフェイスが 1 つしかないことを考えると、これがアダプター パターンの精神にどのように含まれているかは明確ではありません。

さらに、いくつかのメソッドが実装を持つ可能性があり、NullObject は伝統的にシングルトンであることを考えると、これがNullObject パターンにどのように準拠しているかはよくわかりません。

0 投票する
2 に答える
630 参照

qt - Qtでのインターフェイス分離

私は常にSOLIDの原則を適用しようとしていますが、Qtツールキットは本当に気に入っていますが、単一の継承ルールで常に苦労しています。

多重継承を使用している場合、mocは、最初に継承されたクラスがQObjectのサブクラスであると想定します。 また、最初に継承されたクラスのみがQObjectであることを確認してください。

QObjectルールからの単一の継承とインターフェイス分離の原則をどのように組み合わせるか。
信号とスロットを使用してインターフェイスを定義したいのですが、これを行うことは許可されていません。

このショートカミングをどのように回避しますか?

0 投票する
4 に答える
3479 参照

design-patterns - 複合パターンはソリッドですか?

複合パターンのリーフは、リーフが使用することのない、、、およびメソッドを含むコンポーネントインターフェイスを実装しAddますRemoveGetChildこれは、インターフェイス分離の原則に違反しているようです。

では、Composite Pattern SOLIDの使用法はどうですか?

複合パターンへのリンク:http://www.dofactory.com/Patterns/PatternComposite.aspx

0 投票する
1 に答える
625 参照

javascript - jQueryのインターフェイス分離の原則

これがjQueryでどのように機能するかをよく説明できる人はいますか?

具体的にはここからの回答に関して。

OOPの単一責任原則(SRP)と同じように聞こえますか?どう違うの?

0 投票する
1 に答える
474 参照

oop - インターフェイスの実装 (インターフェイス分離の原則)

情報を取得するためにサードパーティのサービスを呼び出す必要がある状況があります。これらのサービスは、クライアントごとに異なる場合があります。次のように、インターフェイスに認証機能があります。

など...今、認証のためにいくつかの追加情報(agentid)を必要とするサービスプロバイダー(XYZServiceProviderとしましょう)に出くわしました。このようなもの...

3 つのパラメーターを使用してインターフェイスに Authenticate 用の別の関数を提供し、XYZServiceProvider を除くすべてのクラスで実装されていない例外をスローすると、インターフェイス分離の原則に違反しませんか? コードの他の部分でも同様の状況があります。このタイプのシナリオを実装する最良の方法を教えてください。私は本当にとても感謝しています。

0 投票する
3 に答える
2497 参照

design-patterns - インターフェイス分離の原則は、単一責任の原則の代わりにすぎませんか?

インターフェイス分離の原則は、単一責任の原則の代わりにすぎませんか?

クラスが SRP を満たす場合、複数のインターフェイスを抽出する必要はないと思います。

したがって、ISP は、何らかの理由で SRP を壊さなければならない場合の解決策のように見えます。

私は正しいですか?

0 投票する
3 に答える
461 参照

oop - インターフェイス分離の原則が適用されないのはいつですか? SOA?

インターフェイス分離原則 (SOLID から) を使用しないシナリオの例を探しています。

私が言及した (しかし説明されていない) 唯一のものは、SOA のコンテキストにおけるサービスのインターフェースの場合です。しかし、なぜ?この場合、インターフェースが設計上太っていることになっているからでしょうか? SOAの法令によって?

ISP が適切でない他の状況はありますか?

前もって感謝します。

0 投票する
6 に答える
7194 参照

oop - インターフェイス分離の原則 - インターフェイスへのプログラム

SOLID やその他の設計原則について読んでいました。ISPは「実装ではなく、インターフェースへのプログラム」と同じだと思いました。しかし、これらは異なる原則のように見えますか?

違いはありますか?

0 投票する
2 に答える
959 参照

c# - アダプターパターンを実装してファットインターフェイスを分離するにはどうすればよいですか?

変更できないファットインターフェイスがあるとします。また、そのファットインターフェイスからいくつかのメソッドのみを使用したいクライアントクラスがいくつかあります。インターフェイス分離の原則を実現するために、この状況に対応するアダプタパターンをどのように実装できますか?