Open2
C#でインターフェースを扱い、SOLID原則を理解する

SOLID原則に関する記事・資料を読んだりしてきたが、実際に作ってみないと実感が沸かないため、色々やってみる。
- 参考資料
以降のコメントでは以下を記載する。
- 実際に実装したコード
- コードに対する考え
- SOLID原則との関係

SOLID原則:依存性の逆転の原則, インターフェースの分離の原則
以下のような CardManager というクラスを使っていたが、
CardManager に ICardProvider, ICardManipulater の 2つのインターフェースの実装をしてインターフェース経由でアクセスしたほうがスマートだと思った。
この考えは SOLID原則 の内の以下に当てはまる。
- CardManager に インターフェースの実装をしてインターフェース経由でアクセスする
- 依存性の逆転の原則:CardManager の実装内容に直接依存するのではなく、インターフェースの実装内容に依存するようにしている
- ICardProvider, ICardManipulater の 2つのインターフェースの実装をする
- インターフェースの分離の原則:1つのインターフェースではなく、2つに分けるようにしている
変更前
private CardManager CardManager;
void Start()
{
CardManager = new CardManager(CardData);
}
以下、CardManager 経由でカードへのアクセス処理を記載する
変更後
private ICardManipulator CardManipulator;
private ICardProvider CardProvider;
void Start()
{
var CardManager = new CardManager(CardData);
CardManipulator = CardManager;
CardProvider = CardManager;
}
以下、インターフェース経由でカードへのアクセス処理を記載する