Springオブジェクト指向の原則


OCP


Open-Closed Principle
ソフトウェアオブジェクト(クラス、モジュール、関数など)は、拡張を開き、変更を閉じる必要があります.
インプリメンテーション・オブジェクトを変更する場合は、クライアント・コード(インタフェース・セクション)を変更しないでください.

DIP


Dependency Inversion Principle
抽象に頼るには,具体化に頼るわけにはいかない.
クライアントは実装クラスに依存するのではなく、インタフェースに依存するように設計する必要があります.

MemberServiceImplファイル

private final MemberRepository memberRepository = new MemoryMemberRepository();

  • MemoryMemberRepository()というインプリメンテーションに依存する.(DIP違反)

  • したがって、このインプリメンテーションを別のインプリメンテーションに置き換える場合は、クライアントファイル「MemberServiceImplファイル」を変更する必要があります.(OCP違反)
  • 解決策


    追加