SOLID
- SRP(Single Responsibility Principle) - 단일 책임 원칙
- 한 클래스는 하나의 책임만 가져야 한다.
- 하나의 책임의 기준은 변경이다.
- 변경이 발생했을 때, 변경해야 될 부분이 적으면, 단일 책임 원칙을 잘 따른것.
- 클래스를 변경해야하는 이유가 오직 하나여야한다.
- ex) 결제 버튼의 위치가 변경되었지만, 결제 기능에 대한 영향은 없다.
- OCP(Open/Closed Principle) - 개방/폐쇄 원칙
- 확장에는 열려있으나 변경에는 닫혀있어야한다.
- 변경을 위한 비용은 줄이고, 확장을 위한 비용은 극대화 해야한다.
- 템플릿 메소드 찾아보기(OCP 좋은 예)
- LSP(Liskov Substitution Principle) - 리스코프 치환 원칙
- 하위 타입(자식)은 언제나 자신의 상위타입(부모)으로 교체할 수 있어야 한다.
- 정확성을 깨뜨리면 안된다.
- 원칙을 지키지 않으면 자식클래스의 인스턴스를 파라미터로 전달했을 때 메소드가 이상하게 작동할 수 있다.
- 부모클래스에 대해 작성된 단위 테스트가 자식클래스에 대해서는 작동되지 않는다.
- 상속을 잘 활용하고 있다면, 이미 LSP를 하고 있다.
- ISP(Interface Segregation Principle) - 인터페이스 분리 원칙
- 클라이언트가 자신이 사용하지 않는 메서드에 의존하지 않아야 한다.
- 특정 클라이언트를 위하여, 하나의 범용 인터페이스를 제공하는 것 보다 여러개의 인터페이스를 제공하는 것이 낫다.
- DIP(Dependency Inversion Principle) - 의존관계 역전 원칙
- 객체들 간의 협력하는 과정에서 의존 관계가 형성된다.
- 의존관계 역전원칙은 이러한 의존관계를 맺을 때 , 어떻게 하면 변화에 용이하게 대응할 수 있을 것인가에 대한 가이드라인이다.
- 변하기 쉬운 것과 어려운 것을 구분해야한다.
- 변하기 쉬운 것
- 구체적인 행동
- 스마트폰으로 전화를 건다.
- 공중전화로 전화를 건다.
- 이메일을 발송한다.
- 카카오톡 메세지를 전달한다.
- 구체적인 행동
- 변하기 어려운 것
- 흐름이나 개념과 같은 추상적인 것.
- 전화를 건다
- 메세지를 전달한다.
- 흐름이나 개념과 같은 추상적인 것.
- 변하기 쉬운 것
'내일배움캠프 > TIL' 카테고리의 다른 글
2022.11.23 TIL / 프로젝트 (0) | 2022.11.23 |
---|---|
2022.11.22 TIL (0) | 2022.11.22 |
2022.11.18 TIL (1) | 2022.11.18 |
2022.11.17 TIL (0) | 2022.11.17 |
2022.11.16 TIL (2) | 2022.11.16 |