GoF 디자인 패턴 22가지
생성 5가지
- Singleton : 오직 하나의 객체를 생성, 어디서든 동일한 방법으로 접근
- Factory Method : 객체 생성에 관련된 가변성을 메소드로 분리
- Absract Factory : 공장도 인터페이스 기반으로
- Prototype : 견본에 의한 생성
- Builder : 동일한 구축 공정, 다른 표현 객체 생성
구조 7가지
- Composite : 재귀적 합성을 통한 복합 객체 구성
- Decorator : 재귀적 합성을 통한 동적인 기능의 추가
- Adpater : 인터페이스의 변경
- Bridge : 구현과 추상을 분리
- Proxy : 기존 요소를 대신하는 클래스
- Facade : 하위 시스템의 복잡함을 단순화 시키는 상위 클래스 제공
- Flyweight : 속성이 동일한 객체는 공유
행위 10가지
- Template Method : 변하는 정책을 메소드로 분리
- State : 상태에 따른 동작을 인터페이스 기반 클래스로 분리
- Strategy : 정책을 인터페이스 기반 클래스로 분리
- Iterator : 복합 객체의 내부 구조에 상관없이 요소를 열거
- Visitor : 복합 객체의 내부 구조에 상관없이 요소에 연산
- Observer : 발생한 이벤트를 등록된 객체에게 전파
- Chain of Responsibility : 발생한 이벤트가 처리되지 않으면
다음 객체에게 전달
- Memento : 객체의 상태 저장/복원을 제공하는 방법
- Command : 명령을 캡슐화, undo, redo, macro...
- Mediator : 객체 간의 복잡한 관계를 캡슐화
객체지향 5대 원칙(SOLID)
- SRP(단일 책임 원칙) : 모듈은 단 하나의 책임을 가져야 한다.
- OCP(개방 폐쇄 원칙) : 모듈은 수정에는 닫혀 있고, 확장에는 열려 있어야 한다.
- LSP(리스코프 대체 원칙) : 자식의 공통된 속성은 부모로부터 와야 한다.
- ISP(인터페이스 분리 원칙) : 범용 인터페이스보다 세분화된 인터페이스가 낫다.
- DIP(의존관계 역전 원칙) : 구체 클래스에 의존하는 것이 아니라 추상 클래스나 인터페이스에 의존해야 한다.
'Software Design Pattern' 카테고리의 다른 글
Software Architectural Patterns (0) | 2017.12.27 |
---|---|
Proxy Pattern(대리자 패턴) (0) | 2017.12.07 |
브릿지(Bridge) 패턴 (0) | 2017.12.07 |
Flyweight pattern (0) | 2017.12.07 |
Facade(퍼사드) 패턴 (0) | 2017.12.06 |