SOLID

suhan cho·2022년 12월 10일
0

SOLID

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

SRP

  • 하나의 클래스가 여러 책임을 가지게 된다

  • 단일 책임 원칙으로 구성해야 한다.

OCP

  • 기어가 수동이냐 자동이냐에 따라 운전자에 바로 영향이 가기에 개방 폐쇄 원칙 위배
  • 상위 클래스 또는 인터페이스를 중간에 둠으로써 운전 습관에 영향 받지 않는다. 자동차가 여러개 생긴다는 확장에 개방되어 있고 운전자 입장에서 주변 변화가 폐쇄된 것

LSP

  • 서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있다
  • 위반한 사례이다
  • 원칙을 만족하였다

ISP

  • 클라이언트는 자신이 사용하지 않는 메소드에 의존 관계를 맺으면 안 된다.

  • SRP에서 단일 책임하도록 다수의 클래스로 분리하고 인터페이스 분리 원칙은 각 역할에 맞게 인터페이스로 분라하는 것

  • SRP와 ISP은 같은 문제에 대한 두가지 다른 해결책이고 특별한 경우가 아니라면 단일 책임 원칙을 적용하는 것이 더 좋은 해결책이다.

DIP

  • 고차원 모듈은 저차원 모듈에 의존하면 안 된다. 이 두 모듈 모두 다른 추상화된 것에 의존해야 한다. 추상화된 것은 구체적인 것에 의존하면 안 된다. 구체적인 것이 추상화된 것에 의존해야 한다.
  • 자동차 타이어는 자주 바뀌게 되는 것 중 하나이고, 이렇게 자주 바뀌는 것에 의존하면 자동차는 영향을 받게 된다.

  • 구체적인 타이어가 아닌 추상화된 타이어 인터페이스에 의존하게 함으로써 타이어가 변경 되어도 영향 받지 않는다.

  • 자신보다 변하기 쉬운 것에 의존하던 것을 추상화된 인터페이스나 상위 클래스를 두어 변하기 쉬운 것의 변화에 영향받지 않게 하는 것이 의존 역전 원칙이다. 상위 클래스 일수록, 인터페이스일수록, 추상 클래스일수록 변하지 않을 가능성이 높다.

출처 : https://devlog-wjdrbs96.tistory.com/380

profile
안녕하세요

0개의 댓글