객체 지향 프로그래밍
역할과 구현을 분리
객체의 협력 관계
자바 언어의 다형성
역할과 구현의 분리로 인한 장점
한계점
스프링과 객체 지향
객체 지향 설계
모든 설계에 역할과 구현 분리
인터페이스 도입시 추상화 비용 발생
기능 확장 가능성이 없을 시 구체 클래스를 직접 사용 후 필요시 리팩터링으로 인터페이스를 도입
좋은 객체 지향 설계의 5가지 원칙