Helmi

1. 소프트웨어 설계 - GoF(Gangs of Four) 디자인 패턴 종류 본문

정보처리기사

1. 소프트웨어 설계 - GoF(Gangs of Four) 디자인 패턴 종류

Helmi 2023. 5. 18. 16:22

생성 패턴(Creational Pattern)

- 추상 팩토리(Abstract Factory) : 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관·의존하는 객체들의 그룹으로 생성하여 추상적으로 표현하는 패턴

 

- 빌더(Builder) : 작게 분리된 인스턴스를 건축하듯 조합하여 객체 생성하는 패턴, 객체의 생성 과정과 표현 방법을 분리하고 있어, 동일한 객체 생성에서도 서로 다른 결과 만들어 낼 수 있음

 

- 팩토리 메소드(Factory Method) :  객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴으로, 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당함.

 

- 프로토 타입(Prototype) : 원본 객체를 복제하는 방법으로 객체 생성하는 패턴

 

- 싱글톤(Singleton) : 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있으나 여러 프로세스 동시에 참조할 수 없는 패턴

 

구조 패턴(Structural Pattern)

- 어댑터(Adaptor) : 호환성 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴

 

- 브리지(Bridge) : 구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴

 

- 컴포지트(Composite) : 여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용하는 패턴

 

- 데코레이터(Decorator) : 객체 간의 결합 통해 능동적으로 기능들을 확장할 수 있는 패턴

 

- 퍼싸드(Facade) : 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구성함으로써 서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴


- 플라이웨이트(Flyweight) : 인스턴스가 필요할 때마다 매번 생성하는 것 아니고 가능한 한 공유해서 사용함으로써 메모리 절약하는 패턴

 

- 프록시(Proxy) : 접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할을 수행하는 패턴

 

행위 패턴(Behaviroal Pattern)

- 책임 연쇄(Chain of Responsibility) : 요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴

 

- 커맨드(Command) : 요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그에 남기는 패턴

.

- 인터프리터(Interpreter) : 언어에 문법 표현을 정의하는 패턴

 

- 반복자(Iterator) : 자료 구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴

 

- 중재자(Mediator) : 수많은 객체들 간의 복잡한 상호작용(interface)을 캡슐화하여 객체로 정의하는 패턴

 

- 메멘토(Memento) : 특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능 제공하는 패턴

 

- 옵서버(Observer) : 한 객체의 상태 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태 전달하는 패턴