SOLID란?
응집도를 높이고 결합도를 낮추기 위한 구체적인 방안. 로버트 마틴이 주장한 다섯가지 설계원칙
- SRP : 단일책임원칙. 해야하는게 하나일 때. 클래스가 변경돼야 하는 이유가 하나만 되도록 설계
ex) xml 형태가 아닌 다른 형태로 출력
두가지 변경 요인이 존재 -> SRP 만족 X
출력하는 기능 / 편집하는 기능 으로 클래스 분리!!!! --> SRP 만족!
* 하나의 메소드만 있어야하는건 아님. 그것들이 다 연관돼있어야함.
- OCP : Open Closed Principle 개방 폐쇄의 원칙. 가장 핵심적인 설계 원칙. 기존 코드를 변경하지 않으면서 새 기능 추가할 수 있도록 설계하는 원칙.
- LSP : 일반화 관계를 적절히 사용했는지 점검하는 원칙
- ISP : 인터페이스 분리 원칙. 클라이언트는 자신들이 사용하는 인터페이스에 의존하도록 강제돼선 안된다.
클라이언트에 특화되도록 분리시키라는 설계 원칙. fat interface 대신(큰 인터페이스)대신 작은 인터페이스 사용
- DIP : Dependency Inversion Principle, 의존성 역전 원칙
가능한 변하기 어려운 추상적인 개념으로 하는게 좋음 (예 - 추상클래스와 인터페이스)
인터페이스/추상클래스 많이 사용할수록 좋다.
'Study > 소프트웨어공학' 카테고리의 다른 글
결합도 (0) | 2021.08.22 |
---|---|
응집도 (0) | 2021.08.22 |
소프트웨어 아키텍처 (0) | 2021.08.22 |
UML, 유스케이스 모델링 (0) | 2021.08.22 |
릴리스 계획/스크럼 도구 (0) | 2021.08.22 |