DesignPattern ============= Idea ------------- > * 바뀌는 부분은 캡슐화한다 > * 상속보다는 구성을 활용한다 > * 인터페이스에 맞춘다 > * 느슨한 결합을 최대한 이용한다 > * 확장에는 열려있고 변경에는 닫혀있다(OCP) > * 추상화에 의존해라 Patterns ------------- > * Strategy > 변경될 수 있는 부분을 객체로 분리 후 구성을 활용 > * Observer > 변경이 발생시 푸시 또는 풀을 이용해 자동으로 갱신되게하는 방법 > * Decorator > 객체에 다른 객체를 동적으로 추가할 수 있는 방법 > * Factory > 객체 생성을 다른 클래스 또는 정적 메소드에 위임하는 방법 > * Singleton > 프로그램 상에 단 하나만 존재하는 객체를 만드는 방법 > * Command > 객체의 동작을 캡슐화 하는 방법