-
SOLID 개발원칙CS/그 외 2021. 8. 19. 20:54
SOLID 란?
객체지향 프로그래밍에서 지향하는 개발 원칙 5가지.
- Single Responsibility Principle (SRP, 단일 책임 원칙)
- Open/Closed Principle (OCP, 개방/폐쇄 원칙)
- Liskov Substitution Principle (LSP, 리스코프 치환 원칙)
- Interface Segregation Principle (ISP, 인터페이스 분리 원칙)
- Dependency Inversion Principle (DIP, 의존관계 역전 원칙)
1. Single Responsibility Principle (SRP, 단일 책임 원칙)
- 소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임만을 가져야 한다.
- 책임이 많아지면 클래스 내부의 함수끼리 강한 결합을 발생할 가능성이 높아진다. 이는 유지보수에 비용이 증가하게 되므로 따라서 책임을 분리시킬 필요가 있다.
2. Open/Closed Principle (OCP, 개방/폐쇄 원칙)
- 기존의 코드를 변경하지 않고(Closed) 기능을 수정하거나 추가할 수 있도록(Open) 설계해야 한다.
3. Liskov Substitution Principle (LSP, 리스코프 치환 원칙)
- 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있다는 원칙이다.
- 즉 부모 클래스가 들어갈 자리에 자식 클래스를 넣어도 계획대로 잘 작동해야 한다.
4. Interface Segregation Principle (ISP, 인터페이스 분리 원칙)
- 한 클래스는 자신이 사용하지않는 인터페이스는 구현하지 말아야 한다.
- 하나의 일반적인 인터페이스보다 여러개의 구체적인 인터페이스가 낫다.
5. Dependency Inversion Principle (DIP, 의존관계 역전 원칙)
- 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라는 것이다.
- 한마디로 구체적인 클래스보다 인터페이스나 추상 클래스와 관계를 맺으라는 것이다.