디자인 패턴

#1. [디자인 패턴-생성 패턴] Abstract Factory

5 분 소요

Abstract Factory는 특정 그룹 계열에 속한 개체들을 생성합니다. 생성할 개체들이 일련의 그룹인 경우 생성 관련 로직을 간결하게 만들 수 있습니다.

#2. [디자인 패턴-생성 패턴] Builder

4 분 소요

Builder는 여러 요소가 합성된 개체일 경우 요소를 합성하는 방법과 요소를 생성하는 방법을 분리하여 확장성을 향상시켜 줍니다.

#3. [디자인 패턴-생성 패턴] Factory Method

3 분 소요

Factory Method는 생성에 대한 구체적인 정보를 자식 클래스에서 알고 있을때 부모 클래스에서 자식 클래스에게 생성을 요청하기 위해 사용합니다.

#4. [디자인 패턴-생성 패턴] Prototype

4 분 소요

Prototype은 미리 정의된 개체로부터 복제하여 개체를 생성합니다. 속성까지 동일한 개체를 여러개 만들때 사용하면 좋습니다.

#6. [디자인 패턴-구조 패턴] Adapter

3 분 소요

Adapter는 임의의 개체(Adpatee)를 기존 인터페이스로 사용하기 위해 감쌉니다. 개체의 소스코드를 직접 수정할 수 없을때 사용합니다.

#7. [디자인 패턴-구조 패턴] Bridge

4 분 소요

Bridge는 추상과 구현을 분리하여, 종속적인 부분을 느슨하게 만들어 주거나, 구현을 다형적으로 만들 수 있게 합니다.

#8. [디자인 패턴-구조 패턴] Composite

3 분 소요

Composite은 단일 개체와 복합 개체를 추상화하여 모두 동일한 방식으로 다루게 해줍니다. 둘을 서로 구분하여 처리할 필요가 없어지기 때문에 고민할 것들이 줄어듭니다.

#9. [디자인 패턴-구조 패턴] Decorator

4 분 소요

Decorator는 개체에 동적으로 새로운 외형을 추가하거나 기능을 추가할 때 포함을 통해 처리합니다. 클래스를 직접 수정하거나 상속을 이용하여 추가하는 것보다 코드가 간결해 집니다.

#10. [디자인 패턴-구조 패턴] Facade

최대 1 분 소요

Facade는 서브시스템의 클래스들이 복잡하게 얽혀있고 사용이 어려운 경우, 단순하고 일관된 상위 수준의 통합 인터페이스를 제공합니다. 외부에서 내부 서브시스템을 몰라도 되므로, 사용하기 쉬워집니다.

#12. [디자인 패턴-구조 패턴] Proxy

3 분 소요

Proxy는 실제 개체의 동작을 대리해서 실행합니다. 최소한의 정보만을 이용하여 대리 실행하기 때문에, 생성이나 실행시 속도 부하가 있는 개체의 속도 개선을 위해 사용합니다.

#13. [디자인 패턴-행위 패턴] Chain of Responsibility

6 분 소요

Chain of Responsibility는 요청을 여러 개체에 전달하여 함께 처리할 수 있게 해줍니다. 한군데에서 모든 요청을 처리하지 않고 책임에 따라 여러 개체에 분산하므로, 해당 개체 구현시 고민할 것들이 줄어듭니다.

#14. [디자인 패턴-행위 패턴] Command

4 분 소요

Command는 기능의 요청과 실행을 분리하여, 실행 부분이 재활용될 수 있게 합니다. 동일한 기능을 메뉴, 단축키, 매크로등 여러 방법으로 실행할 수 있을때 사용하면 좋습니다.

#15. [디자인 패턴-행위 패턴] Interpreter

7 분 소요

Interpreter는 비교적 단순하게 설계된 임의의 언어를 해석하는 간단한 방법을 제공합니다. 파서를 통해 가상의 트리를 만들고 이를 이용하여 구문을 해석합니다.

#16. [디자인 패턴-행위 패턴] Iterator

3 분 소요

Iterator는 집합 개체에서 요소에 접근하는 방법을 제공합니다. 집합 개체의 내부 구현을 외부에 은닉하기 때문에 집합 개체의 구현 방식을 비교적 안전하게 변경할 수 있습니다. C++의 경우 STL의 컨테이너는 모두 이터레이터를 제공하며, begin(), end(), ++, * ...

#17. [디자인 패턴-행위 패턴] Mediator

4 분 소요

Mediator는 개체들끼리의 상호작용을 캡슐화합니다. 개체들끼리 서로 직접 참조하지 않기 때문에 결합도가 낮아져 유지보수 편의성이 향상됩니다.

#18. [디자인 패턴-행위 패턴] Memento

4 분 소요

Memento는 내부 상태를 저장해 두고 나중에 복원할 수 있게 해줍니다. Command 패턴과 함께 사용되어 Undo를 구현할 수 있습니다.

#19. [디자인 패턴-행위 패턴] Observer

3 분 소요

Observer는 특정 개체를 감시하며, 변경 발생을 통지 받는 일반적인 구조입니다.(개체지향 원칙중 헐리우드 원칙과 유사합니다.)

#20. [디자인 패턴-행위 패턴] State

7 분 소요

State는 내부 상태에 따라 다른 동작 방법을 제공합니다. 상태를 처리하는 코드들이 응집되어 상태 처리가 비교적 단순해 집니다.

#21. [디자인 패턴-행위 패턴] Strategy

3 분 소요

Strategy는 알고리즘이나 기능등의 전략을 캡슐화하고 런타임에 변경할 수 있게 만들어 줍니다. 외부에서 동작을 결정하고 변경할 수 있어 확장성이 향상됩니다.