디자인패턴

[디자인패턴] GOF 디자인 패턴

오늘도개발 2024. 2. 28. 13:18

 

1. GOF 디자인 패턴이란 ?

 

 - Gang of Four(GOF) 디자인 패턴은 소프트웨어 디자인에서 자주 발생하는 문제들을 해결하기 위해 고안된 일련의 패턴들을 의미합니다.

 

 - 총 23가지의 디자인 패턴이 소개

 

 

   

1. 생성 패턴(Creational Patterns):

 

  • 싱글톤(Singleton): 어떤 클래스가 오직 하나의 인스턴스만을 갖도록 보장, 전역적인 접근 제공

 

  • 팩토리 메서드(Factory Method): 객체 생성을 서브클래스에서 처리하도록 하는 패턴

 

  • 추상 팩토리(Abstract Factory): 관련성 있는 여러 객체의 생성을 책임지는 인터페이스를 제공

 

  • 빌더(Builder): 복잡한 객체를 생성하는 과정과 표현을 분리,  동일한 생성 과정에서 서로 다른 표현 결과를 만듬

 

  • 프로토타입(Prototype): 기존 객체를 복제하여 새로운 객체를 생성하는 방식

 

 

 

   2. 구조 패턴(Structural Patterns):

 

  • 어댑터(Adapter): 호환되지 않는 인터페이스를 사용하는 클래스를 함께 동작할 수 있도록 변환

 

  • 브리지(Bridge): 추상화와 구현을 분리하여 두 가지의 변경이 독립적으로 이루어질 수 있도록 합

 

  • 컴포지트(Composite): 객체를 트리 구조로 구성하여 개별 객체와 복합 객체를 동일하게 다룰 수 있도록 함

 

  • 데코레이터(Decorator): 객체에 동적으로 새로운 책임을 추가하는 방식, 기존 객체의 수정 없이 기능 확장

 

  • 퍼사드(Facade): 복잡한 서브시스템을 간단한 인터페이스로 대체하여 사용성을 향상

 

  • 플라이웨이트(Flyweight): 객체를 공유하여 메모리 사용량을 줄이고 성능을 향상

 

  • 프록시(Proxy): 다른 객체에 대한 접근을 제어하기 위한 대리자 역할을 수행

 

 

   3. 행위 패턴(Behavioral Patterns):

 

  • 책임 연쇄(Chain of Responsibility): 요청을 보내는 객체와 그 요청을 처리하는 객체 사이에 느슨한 연결을 만듬

 

  • 명령(Command): 사용자가 보낸 요청을 나중에 이용할 수 있도록 메서드 호출, 매개변수 등의 요청을 객체로 캡슐화

 

  • 방문자(Visitor): 객체의 구조와 행동을 분리하여, 새로운 행동(메서드)을 추가할 수 있도록 함

 

  • 상태(State): 객체의 상태에 따라 행동을 변경할 수 있도록 함

 

  • 전략(Strategy): 알고리즘군을 정의하고 각각을 캡슐화하여 교환할 수 있도록 만듬

 

  • 템플릿 메서드(Template Method): 알고리즘의 구조를 변경하지 않고 특정 단계에서 알고리즘을 재정의할 수 있도록 함

 

  • 중재자(Mediator): 객체 간의 상호작용을 캡슐화하여 복잡성을 줄이고 결합도를 감소

 

  • 관찰자(Observer): 객체 사이의 일대다 의존 관계를 정의하여 한 객체의 상태가 변경될 때 의존 객체들이 자동으로 알림을 받도록 함

 

 * 코드의 재사용성, 확장성, 유지보수성을 향상시키는데 도움을 줌