재사용할 수 없는 코드란?
- 경직성(rigidity) - 프로그램의 한 부분을 변경하면 다른 부분까지 변경해야 하는ㄱ ㅕㅇ우
- 취약성(fragility) - 관련이 없는 곳에서 오류가 발생하는 경우
- 부동성(immobility) - 코드를 원래 맥락에서 벗어나 재사용할 수 없는 경우
SOLID
- SRP - 단일 책임 원칙
- OCP - 개방/폐쇄 원칙
- LSP - 리스코프 치환 원칙
- ISP - 인터페이스 분리 원칙
- DIP - 의존성 역전 원칙
SRP
- 클래스를 변경한 이유가 단일해야 한다.
- 클래스를 설명하는 글에
그리고
가 들어가면 SRP가 아닐 수 있다.
- 한 메서드를 변경해도 다른 메서드에 영향을 미치지 않아야 함
- 변화해야 할 책임이 단일해야 한다.
- 변화해야 할 이유가 단 한가지여야 한다.
OCP
- 클래스를 수정하지 않고 클래스의 행위를 확장할 수 있어야 한다.
- 인터페이스를 통해 메서드를 추상화하여 수정을 막고, 인터페이스를 구현하면서 확장시킨다.
LSP