- DIP
- 제일 중요함
- 의존관계를 역전시킴
- 클래스에 의존하는게 아니라, 인터페이스에 의존!!
- spring DI에 연관이 있음
- DIP잘 이해하면 Spring의DI를 잘 이해할 수 있음
- IoC 알아서 의존성을 주입해줌<
- 구현 클래스 선택을 spring이 해줌
- interface 대부분 사용
- abstract class도 사용가능하긴 한데, abstract class는 주로 필드 기반이기 때문에
- interface는 기능 위주로
- interface가 추상화가 높음 (abstract class는 계층구조가 있기 때문에)
- 기본적으로 추상화를 굳이 안해도 된다면 추상화를 하지 마셈
- 무분별한 추상화는 옳지 않음
- 확장도 가능한지, 언제든지 다른 부품으로 갈아치울 수 있는지
- 무분별한 추상화는 옳지 않음