본문 바로가기

Software Design Pattern

GoF 디자인 패턴 22가지(정리), 객체지향 5대 원칙(SOLID)

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