派生クラスのさまざまなインスタンスに共通のデータがあります。そのため、共通のデータプロパティを共有するために、基本クラスでそれらを静的にしました。ただし、静的共通プロパティはインターフェイスで宣言できません。試してみると、次のエラーが発生します。
「静的であるため、インターフェイスメンバーを実装できません。」
この種の要件に対する既知のデザインパターンまたはベストプラクティスはありますか?
派生クラスのさまざまなインスタンスに共通のデータがあります。そのため、共通のデータプロパティを共有するために、基本クラスでそれらを静的にしました。ただし、静的共通プロパティはインターフェイスで宣言できません。試してみると、次のエラーが発生します。
「静的であるため、インターフェイスメンバーを実装できません。」
この種の要件に対する既知のデザインパターンまたはベストプラクティスはありますか?
代わりに、抽象基本クラスを使用することをお勧めします。
インターフェイスはまさにそれ、インターフェイスを定義します。メソッドの実装であれ共有データであれ、「実際の」ものができたらすぐに、クラス(この場合は抽象クラス)が必要になります。
別の方法は、インターフェイスを保持することですが、インターフェイスを実装するクラスに関連するデータを保持するためにシングルトンを追加します。インターフェイスを使用する必要がある場合は、これが最適な方法だと思います。シングルトンに名前を付けるだけで、インターフェイスに論理的にリンクされていることがわかり、インターフェイスの実装で使用する必要があることを文書化できます。
あなたの場合、完全なシングルトン実装ではなく、データを含む静的クラスで十分かもしれませんが、ここではこれについては説明しません。「静的クラスとシングルトン」全体については、多少議論の余地があります。