[解決済み] あるインタフェースは別のインタフェースを継承すべきか
質問
この件に関する回答が見つからないので、コーディング規約が正しいかどうか確認したいのです。 私はインターフェイス
A
がありますが、これは多くの異なるクラスによって使用され、 インターフェース
A
を変更する必要があります。 私は、Interface を実装する多くのクラスで必要とされる enum を必要とする新しい要件に出くわしました。
A
しかし、すべてのクラスがこの列挙型を必要とするわけではありません。 しかし、すべてのクラスがこの列挙型を必要とするわけではありません。この新しい列挙型を必要としないクラスには、この新しい機能を実装して欲しくありません。 そこで、私はインターフェイス
B
を作成し、その中に追加する必要がある新しい列挙型を組み込みました。 そして、インターフェイス
B
を継承した
A
そして、これが私の関心事です。あるインターフェースが別のインターフェースを継承するのは良いことなのでしょうか? 変更を続けるために、私は新しい列挙型を必要とするクラスをインターフェイスを実装するために変更しました
B
の代わりにインターフェイス
A
に継承されたので
B
. 私はそれらを必要とするクラスで両方のインターフェイスを実装することを考えましたが、私はコード全体でインターフェイスを使用しており、2つではなく、クラスを調べるために1つのインターフェイスを使用したいと思います。
これが十分に明確であったことを望みます(おそらく長すぎます)が、もし誰かがこれについて私にいくつかのアドバイスを与えることができれば、私が正しくやっているか、私が間違っているか、教えてください。
ありがとうございます。
どのように解決するのですか?
インターフェース継承は優れたツールですが、インターフェースBがインターフェースAを本当に代替できる場合にのみ使うべきで、単に緩く関連した動作を集約するために使うべきではありません。
あなたの特定のケースに適切かどうかを判断するのは難しいですが、原則的にこの方法を使うことに問題はありません。一流のAPIでは、常にそれを目にします。1 つの一般的な例を挙げると、.NET フレームワークからです。
public interface ICollection<T> : IEnumerable<T>, IEnumerable
関連
-
[解決済み] Html.BeginForm()にCSSクラスを追加する。
-
[解決済み] ディープクローンオブジェクト
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] どのような場合に '$this' よりも 'self' を使うべきですか?
-
[解決済み] C#でベースコンストラクタを呼び出す
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] インターフェースとベースクラス
-
[解決済み】「インターフェースに合わせたプログラム」とはどういう意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Marginのプロパティ順
-
[解決済み] VS2017/2015 で .xproj ファイルを開く方法
-
[解決済み] フレームワークとアーキテクチャの違いは何ですか?[クローズド]
-
[解決済み] Microsoft.NETFrameworkとMicrosoft.NETFramework64の違いは何ですか?
-
[解決済み] LINQ to Entitiesはメソッドを認識しません。
-
[解決済み] Windowsイベントログで参照される「フレームワークのバージョン」とは何ですか?
-
[解決済み] DockPanelを空きスペースいっぱいに表示させる方法
-
[解決済み] DelphiとDelphi.NETの違いについて
-
[解決済み] パッケージのダウングレード警告を検出(dotnet core, vs 2017)
-
[解決済み] 埋め込みリソーステキストファイルの読み方