[JAVA] 객체지향 설계원칙-SOLID (0621)

왕감자·2024년 7월 3일

KB IT's Your Life

목록 보기
57/177

SOLID 설계 원칙

  • SRP (Single Responsibility Principle) : 단일 책임 원칙
  • OCP (Open-Closed Principle) : 개방-폐쇄 원칙
  • LSP (Liskov Substitution Principle) : 리스코프 치환 원칙
  • ISP (Interface Sefregation Principle) : 인터페이스 분리 원칙
  • DIP (Dependency Invesion Principle) : 의존 역전 원칙

1. 단일 책임 원칙 (SRP)

SRP (Single Resposibility Principle)
객체(클래스)는 단 한 개의 책임만 가져야 함

  • 가장 기본이 되는 원칙
  • 클래스를 변경하는 이유는 단 한개여야 한다

2. 개방-폐쇄 원칙 (OCP)

OCP (Open-Closed Principle)
기능 확장에는 열려 있고, 변화에는 닫혀 있어야 함

  • 다형성의 기본
  • 기능 확장: 자식 클래스 추가
    • 자식 클래스가 추가 되어도 사용자 쪽에는 변화X
    • 인터페이스가 변하지 않는 이상 사용자 측 변화X

(전략 패턴)

3. 리스코프 치환 원칙 (LSP)

LSP (Liskov Substitution Principle)
상위 타입 객체를 하위 타입 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상 작동

  • 다형성의 기본
  • 상위 타입으로 하위 타입을 참조해서 운영할 수 있어야 함

4. 인터페이스 분리 원칙 (ISP)

ISP (Interface Sefregation Principle)
객체는 자신이 사용하는 메서드에만 의존해야 함

  • 인터페이스를 각각 단일 책임의 원칙에 맞게 설계
  • 인터페이스는 그 인터페이스를 사용하는 클라이언트 기준으로 분리

5. 의존 역전 원칙 (DIP)

DIP (Dependency Invesion Principle)
고수준 모듈은 저수준 모듈 구현에 의존해서는 안 됨
저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존해야 함

  • Spring의 기본 기능 중 하나
    • 필요한 것을 메소드의 매개변수로 제시하면 알아서 전달해 줌
  • 의존도↓
  • 교체 가능

Programming to Interface

인터페이스로 프로그래밍해라
▶ 위 원칙이 어느정도 충족 된다~!

0개의 댓글