ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] 객체 지향 설계의 5가지 원칙 (SOLID)
    Spring 2021. 4. 18. 17:05

    SOLID : 클린 코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정의했다

     

     

    1. SRP

     

    - Single Responsibility Principle, 단일 책임 원칙

    - 하나의 클래스는 하나의 책임만 가져야 한다

    - 책임의 기준은 모호하지만 대표적으로 기능의 변경시 파급 효과가 적도록 해야 한다

     

    SRP 위반 사례, 서비스 클래스에서 저장소 객체를 생성하고 있다

     

     

    2. OCP

     

    - Open/Closed Principle, 개방-폐쇄 원칙

    - 소프트웨어 요소는 확장에는 열려있고 변경에는 닫혀 있어야 한다

    - 대표적으로 인터페이스를 만든 뒤 새로운 클래스에서 기능을 추가하는 것이 있다

    - DI(Dependancy Injection)는 대표적인 OCP 적용 사례이다

     

    OCP 적용 사례, 인터페이스를 수정하지 않고 새로운 메소드를 추가했다

     

    3. LSP

     

    - Liskov Substitution Principle, 리스코프 치환 원칙

    - 하위 객체들은 상위 인터페이스에서 정한 기능들을 변경하지 않아야 한다

     

    LSP 위반 사례, join 기능을 구현하지 않았다

     

     

    4. ISP

     

    - Interface  Segregation Principle, 인터페이스 분리 원칙

    - 인터페이스는 기능에 따라 여러 개로 나누는 것이 좋다

    - 인터페이스가 명확해지며, 대체 가능성이 높아진다

     

     

     

    5. DIP

     

    - Dependency Inversion Principle, 의존관계 역전 원칙

    - 프로그래머는 추상화에 의존해야지 구체화에 의존하면 안된다

     

    DIP 위반 사례, memberRepository는 MemoryMemberRepository라는 구체 인스턴스에 의존한다

     

    'Spring' 카테고리의 다른 글

    [Spring] 스프링 컨테이너의 생성 과정  (0) 2021.05.23
    [Spring] 로깅 라이브러리 - SLJ4J, Logback  (0) 2021.05.20
Designed by Tistory.