디자인 패턴의 종류

강찬형·2023년 8월 18일
0

생성 패턴

  • 추상 팩토리(Abstract Factory)

    관련성 있는 객체들의 집합을 생성하는 인터페이스를 제공하는 패턴

  • 빌더(Builder)

    생성 과정과 표현 방법을 분리하는 패턴

  • 팩토리 메서드(Factory Method)

    객체를 생성하는 인터페이스는 정해놓지만 생성하는 인스턴스는 서브클래스에서 생성하는 패턴

  • 프로토타입(Prototype)

    생성되는 객체의 종류를 명새하는데 원형을 복사해 새로운 객체를 생성하는 패턴

  • 싱글턴(Singleton)

    클래스의 인스턴스를 하나임을 보장하며 인스턴스에 접근할수있는 접촉점을 제공하는 패턴


구조 패턴

  • 적응자(Adapter)

    클래스의 인터페이스를 사용자가 원하는 다른 인터페이스로 변환하는 패턴

  • 브릿지(Bridge)

    추상층을 분리하여 독립적으로 변형할수 있게 하는 패턴

  • 복합체(Composite)

    객체들의 관계를 트리구조로 작성하는 패턴, 단일 개체와 복합 개체를 모두 동일하게 다룸

  • 장식자(Decorator)

    상황에 따라 객체에 책임을 덧붙이는 패턴, 기능 확장이 필요할때 서브 클래싱의 대안이 될 수 있음.

  • 퍼사드(Facade)

    서브 시스템의 인터페이스 집합을 하나의 통합된 인터페이스로 제공하는 패턴

  • 플라이급(Flyweight)

    크기가 작은 객체 여러개를 공유를 통해 효율적으로 지원하는 패턴

  • 프록시(Proxy)

    어떤 객체에 접근하는 것을 통제하기 위해 Delegate 혹은 PlaceHolder 를 제공하는 패턴


행동 패턴

  • 책임 연쇄(Chain Responsiblity)

    요청을 보내는 객체와 받는 객체의 결합을 피하는 패턴, 요청을 받을수 있는 객체를 연쇄적으로 묶고 처리할 처리할 객체를 만날때까지 연쇄적으로 요청을 전달하는 패턴

  • 명령(Command)

    객체의 요청을 캡슐화 하여 요청이 다른 사용자의 매개변수화, 요청 저장, 로킹, 연산 취수를 지원하는 패턴

  • 해석자(Interpreter)

    언어의 문법을 위한 표현 수단을 정의, 정의된 표현수단으로 작성된 문장을 해석하는 해석기를 정의하는 패턴

  • 반복자(Iterator)

    내부 표현부를 노출하지 않고 객체의 원소들을 순차적으로 접근할수 있는 방법을 제공하는 패턴

  • 중재자(Mediator)

    집합에 속해있는 객체들을 상호작용을 캡슐화, 객체들이 서로 직접적으로 참조하지 않게하는 패턴

  • 감시자(Observer)

    일 대 다의 의존 관계를 정의, 객체의 상태가 변할때 객체에 의존성을 가진 다른 객체들이 변화

  • 상태(State)

    객체의 내부상태에 따라 스스로 행동을 변경할수 있게 하는 패턴

  • 전략(Stategy)

    동일한 계열의 알고리즘군을 정의한 후 이들을 상호 교환하는 패턴

  • 템플릿 메서드(Template Method)

    알고리즘의 뼈대만 정의한 후 구체적인 처리는 서브클래스에서 하는 패턴

  • 방문자(Visitor)

    객체 구조를 이루는 원소에 대해 수행할 연산을 표현하는 패턴, 연산을 적용할 원소의 클래스를 변경하지 않고 새로운 연산을 사용하게 하는 패턴

Reference

  • GOF의 디자인 패턴 - 리처드 헬름
profile
개발괴발

0개의 댓글