SOLID 원칙

devguri·2023년 4월 20일
2
post-thumbnail

SOLID 원칙 5가지에 대해 설명해보려 한다 !

SRP 단일 책임 원칙

  • 한 클래스는 하나의 책임만 가져야 한다.
  • 중요한 기준은 변경! 변경 있을 떄, 한 부분만 변경가능하면 단일 책임 원칙 잘 지킨 것
  • ex) 객체의 생성과 사용을 분리

OCP 개방-폐쇄 원칙

✅ 확장은 열려있고, 변경은 닫혀 있다.

  • 뼈대로 만든 인터페이스는 변경하지 않아야 하고, 인터페이스를 확장하여 새로운 기능을 구현하고 새로운 여러 객체를 만들 수 있어야함
  • 다형성을 활용하기
  • 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 (인터페이스는 변경되는 것이 아니고, 구현하는 클래스 하나를 만들면서 확장하는 것)

LSP 리스코프 치환 원칙

  • 프로그램의 객체는 정해진 원칙과 규칙을 지키면서 코드를 짜야한다.
  • 다형성에서 하위 클래스는 인터페이스 규약을 다 지켜야 하는 것
  • 단순 컴파일 성공하는 것이 안리ㅏ 원칙을 따르는 것

ISP 인터페이스 분리 원치

  • 특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다.
  • 인터페이스 하나도 그 기능을 나눠서 여러 클라이언트가 관리할 수 있도록 분리하는 것이 효과적임
  • 인터페이스가 명확해지고 대체 가능성이 높아진다.

DIP 의존관계 역전 원칙

✅ 클라이언트 클래스가 구현 클래스가 아닌 인터페이스를 바라보도록 해야한다.

  • 프로그래머는 추상화에 의존해야지 구체화에 의존하면 안된다는 원칙을 따르는 방법 중 하나다. (인터페이스에 의존)
  • 역할에 의존하게 해야하는 것과 같다. 클라이언트가 인터페이스에 의존해야 유연하게 구현체 변경할 수 있다.

-> 이 MemberService 클라이언트는 인터페이스와 구현 클래스에도 동시에 의존해서 문제가 생긴다.

💡 의존한다는 것 : 현재 구현한 클래스를 알고 있다는것

profile
Always live diligently

0개의 댓글

관련 채용 정보