디자인 패턴
- 프로그램 구조를 만들 때 자주 발생하는 문제에 대한 해결 방법
목적
- 생성
- Singleton, Abstract Factory 등
- 구조
- Adapter, Decorator 등
- 행위
- Mediator, Observer 등
싱글톤
- 클래스에 인스턴스가 하나만 있도록 하면서 이 인스턴스에 대한 전역 접근 지점을 제공하는 생성 디자인 패턴
전략 패턴
- 알고리즘들의 패밀리를 정의하고, 각 패밀리를 별도의 클래스에 넣은 후 그들이 객체들을 상호교환할 수 있도록하는 행동 디자인 패턴
- 공통 기능 interface로 빼서 하기
옵저버 패턴
- 여러 객체에 자신이 관찰 중인 객체에 발생하는 모든 이벤트에 대하여 알리는 구독 메커니즘을 정의할 수 있도록 하는 디자인 패턴
- 객체 event를 옵저버한테 알리고 상태 업데이트
상태 패턴
- 객체의 내부 상태가 변경될 때 해당 객체가 그의 행동을 변경
- FSM
팩토리 패턴
- 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하지만, 자식 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 하는 생성 패턴
커맨드 패턴
- 요청을 요청에 대한 모든 정보가 포함된 독립실행형 객체로 변환하는 행동 디자인 패턴
- 바인딩 역할
- 유지보수 용이