SOLID 객체지향 5대원칙
설명
OOP(객체지향언어)를 개발 하면서 지켜야 할 5가지 원칙을 말한다. 많은 Design Pattern이 SOLID 원칙을 토대로 만들어졌기에 이 원칙을 숙지하면 Design Pattern 및 구조 설계를 하기 수월해진다.
모든 코드에 반드시 적용할 필요는 없지만 좋은 설계를 위해선 해당 사항들을 의식하면서 작성하면 좋다.
장점
- 수정과 유지보수가 수월하다
단일 책임 원칙(SRP)
- 객체는 하나의 목적만 가지기
- 모듈이 변경되는 이유는 한가지여야함
- 모듈 다른 모듈에 대한 책임지면 안됨
개방 폐쇄 원칙(OCP)
- 모듈은 확장에 열려있고 수정엔 닫혀야함
- 추상화에 의존해야함
- 인터페이스를 통해 과정이 어떻든 결과만 받기
- Inject 같은 느낌
- 과정이 어떻게 바뀌든 결과만 받으면 되니 확장이 용이하다
리스코프 치환 원칙(LSP)
- 상위 클래스는 하위 클래스로 대체 될 수 있어야함
- 직사각형을 부모로 둔 정사각형이 resize로 가로 세로를 다르게 설정 못함
- 이럴 경우 resize못하게 막거나 Overriding
- 항상 사용하는 클라이언트 기준으로 생각하기
인터페이스 분리 원칙(ISP)
- 클라이언트 용도에 맞는 인터페이스만 제공
- 하나의 Interface보단 구체적인 여러 Interface가 좋다
- 그러면 불필요한 간섭이 줄어든다
- 다른 인터페이스에선 필요없는 정보를 안 알아도 되게 된다
의존 역전 원칙(DIP)
- 상위 모듈이 하위 모듈에 의존하면 안됨
- 상위가 갑 하위가 을 까라면 까기
- 상위-입출력과 먼 내부
- 하위-입풀력과 가까운 겉부분
- Interface, Virtual를 통해 모듈이 어떻든 값만 받기
- OCP와 연관깊다
- 인터페이스는 적당히 만들기
댓글남기기