"유지보수가 쉽다!"라고 말할 수 있는 코드는
1 확장하기 쉽고 2 변경이 적게 추가 개발할 수 있는 코드.
Pattern이란?
=> 특정 context 내에서 주어진 문제에 대한 반복 적용 가능한 해결책
=> library와 같은 정형화되고 구체적인 코드가 아닌 문제 해결을 위한 지침이다.
코드 변경을 최소화 하면서 확장을 쉽게 하자!!
1. 변하지 않는 부분과 변하는 부분을 분리하도록.
: 변하지 않는 부분은 인터페이스로, 변하는 부분은 구현 클래스로.
2. 객체들 간의 상호작용을 최소화. (Loose coupling)
: concreate class의 존재 여부조차 알 필요가 없다.
: 객체간의 의존성을 최소화하라.
*인터페이스의 특징
서비스에 대한 명세이며, 그 서비스에 대한 구현이 아니다.
구현에 종속적이지 않음.
하나의 인터페이스에 대해 여러 개의 구현이 존재할 수 있다.
Adapter, Decorator
[인터페이스에 따른 프로그래밍 예]
JDBC
JNDI Java Naming Directory Interface
JAAS
RMI