정처기

[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 알고리즘을 자료 구조에서 분리하여 클래스를 수정하지 않고도 새로운 알고리즘을 추가할 수 있도록 하는 패턴