객체지향의 핵심 원리 - SOLID

jaycee·2023년 1월 9일
0

SOLID

S 단일 책임의 원칙

  • SRP - Sigle Responsibility Principle
  • 한 클래스는 하나의 책임만 가져야 한다.
  • 변경이 있을 때 파급 효과가 적을 수 있도록 설계한다
  • UI / 객체의 변경

O 개방-폐쇄의 원칙

  • OCP - Open/Closed Principle
  • 확장에는 열려있으나 변경에는 닫혀 있어야 한다.
  • 다형성을 따른다. (자동차를 모닝에서 테슬라로 바꿔도 운전자는 운전하는 데에 지장이 없다.)
  • 인터페이스를 잘 설계한다. 즉 역할과 구현의 분리를 생각한다.

L 리스코프 치환 원칙

  • Liskov Substitution Principle
  • 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
  • 동작의 정확성을 보장해야한다. (컴파일의 성공하는 것과는 다름)

I 인터페이스 분리 원칙

  • Interface Segregation Principle
  • 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
  • 인터페이스를 쪼개야한다.
  • 분리하면 변경사항에 유연해지고, 명확해진다.

D 의존관계 역전 원칙

  • DIP Dependency Inversion Principle
  • 추상화에 의존하고, 구체화에는 의존하지 않는다.
  • 클라이언트는 인터페이스만 바라본다.
  • 운전자는 자동차의 역할만 알면되된다. 아반떼의 내부 엔진이라던지 차크기를 몰라도 운전을 할 수 있다.
  • 잘못된 예 (클라이언트가 구현 클래스를 직접 선택)
private MemberRepository memberRepository = new JdbcMemberRepository();
profile
오늘도 하나 배웠다.

0개의 댓글