정처기
[08. 프로그래밍 언어 활용] 디자인 패턴
곱창국수
2024. 4. 25. 16:43
디자인 패턴
반복적인 문제들의 해결하기 위한 설계 패턴을 일반화한 것으로 GoF 디자인 패턴이라고도 한다.
생성패턴
종류 | 설명 |
Factory Method | 상위 클래스에서는 객체를 생성하기 위한 인터페이스를 정의하고 하위 클래스는 어떤 클래스의 인스턴스를 생성할 것인가 결정하는 패턴 |
Abstract Factory | 관련이 있는 서브 클래스를 묶어서 팩토리 클래스로 만들고, 조건에 따라 객체를 생성하는 패턴 |
Builder | 객체 생성에 많은 인수가 필요한 복잡한 객체를 단계적으로 생성하는 패턴 |
Prototype | 동일한 타입의 객체를 생성해야 할 때 필요한 비용을 줄이기 위한 패턴 새로운 객체를 생성하는 것이 아닌 기존의 객체를 복사하여 특정 속성값을 변경한다. |
Singleton | 클래스가 오직 하나의 인스턴스만을 가지도록 하는 패턴 다수의 인스턴스로 인한 문제를 방지할 수 있다. |
구조패턴
종류 | 설명 |
Adator | 서로다른 인터페이스를 가진 클래스들을 함께 사용할 수 있도록 하는 패턴이다. |
Bridge | 복잡하게 설계된 클래스를 기능부 구현부로 분리한 뒤, 두 클래스를 연결하는 패턴 |
Composite | 객체들의 관계를 트리 구조로 구성하여 단일 객체와 복합객체를 동일하게 다루도록 하는 패턴 |
Decorator | 클래스 변경 없이 주어진 상황에 따라 기능을 추가하는 패턴 |
Facade | 복잡한 서브 시스템들을 간편하게 사용할 수 있도록 단순화된 인터페이스를 제공하는 패턴 |
Flyweight | 메모리 사용량을 최소화하기 위해 객체들 간 데이터 공유를 극대화하는 패턴 |
Proxy | 특정 객체로의 접근을 해당 객체의 대리자를 통해 진행하는 패턴 |
행위패턴
종류 | 설명 |
Interpreter | statement을 평가(해석)하는 방법을 규정하는 패턴 |
Template Method | 상위 클래스에서는 알고리즘의 뼈대를 정의하고 구체적인 단계는 하위 클래스에서 정의하는 패턴이다. |
Chain of Responsibility | 문제의 해결을 위한 일련의 처리 객체가 순서대로 문제를 해결하는 패턴이다. |
Command | 요청을 객체의 형태로 캡슐화하여 나중에 이용할 수 있도록 요청에 필요한 정보를 저장하는 패턴 |
Iterator | 내부 구현을 노출시키지 않고 집약된 객체에 접근하고 싶은 경우 적용하는 패턴 |
Mediator | 객체 간의 통신이 직접 이루어지지 않고 중재자를 통해 진행되어 결합도를 감소시키는 패턴이다. |
Memento | 롤백을 통해 객체의 상태를 이전 상태로되돌릴 수 있는 기능을 제공하는 패턴이다. |
Observer | 객체의 상태 변화를 관찰하는 옵저버를 등록하여 상태 변화가 있을 때마다 등록된 옵저버에게 통지하는 패턴이다. |
State | 객체의 내부 상태에 따라 다른 기능을 수행하는 메소드를 구현하는 패턴이다. |
Strategy | 문제 해결하는 데 있어 다양한 알고리즘이 적용될 수 있는 경우에 알고리즘을 별도로 분리하는 패턴이다. |
Visitor | 알고리즘을 자료 구조에서 분리하여 클래스를 수정하지 않고도 새로운 알고리즘을 추가할 수 있도록 하는 패턴 |