Open2

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

ehime-iyokanehime-iyokan

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;
    }

    以下、インターフェース経由でカードへのアクセス処理を記載する