3

派生クラスのさまざまなインスタンスに共通のデータがあります。そのため、共通のデータプロパティを共有するために、基本クラスでそれらを静的にしました。ただし、静的共通プロパティはインターフェイスで宣言できません。試してみると、次のエラーが発生します。

「静的であるため、インターフェイスメンバーを実装できません。」

この種の要件に対する既知のデザインパターンまたはベストプラクティスはありますか?

4

2 に答える 2

9

代わりに、抽象基本クラスを使用することをお勧めします。

于 2012-11-22T11:48:18.007 に答える
2

インターフェイスはまさにそれ、インターフェイスを定義します。メソッドの実装であれ共有データであれ、「実際の」ものができたらすぐに、クラス(この場合は抽象クラス)が必要になります。

別の方法は、インターフェイスを保持することですが、インターフェイスを実装するクラスに関連するデータを保持するためにシングルトンを追加します。インターフェイスを使用する必要がある場合は、これが最適な方法だと思います。シングルトンに名前を付けるだけで、インターフェイスに論理的にリンクされていることがわかり、インターフェイスの実装で使用する必要があることを文書化できます。

あなたの場合、完全なシングルトン実装ではなく、データを含む静的クラスで十分かもしれませんが、ここではこれについては説明しません。「静的クラスとシングルトン」全体については、多少議論の余地があります。

于 2012-11-22T11:54:32.067 に答える