객체지향 원칙
1. 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분과 분리한다.
2. 구현보다는 인터페이스에 맞춰서 프로그래밍한다. (상위 형식에 맞춰서 프로그래밍한다)
3. 상속보다는 구성을 활용한다.
4. 상호작용하는 객체 사이에서는 가능하면 느슨한 결합을 사용해야 한다.
5. 추상화된 것에 의존하게 만들고 구상 클래스에 의존하지 않게 만든다 (고수준 구성요소가 저수준 구성요소에 의존하면 안 되며, 항상 추상화에 의존하게 만들어야 한다)
1. 디자인 패턴 소개와 전략 패턴2. 옵저버 패턴3. 데코레이터 패턴4. 팩토리 패턴