Justin의 개발 로그
article thumbnail

패턴은 목적(purpose), 범위(scope)로 분류할 수 있으며, 

패턴은 생성, 구조, 행동 중의 한 가지 목적을 갖는다.

  • 생성(creational) 패턴 - 객체의 생성 과정에 관여하는 패턴
  • 구조(structural) 패턴 - 클래스나 객체의 합성에 관한 패턴
  • 행동(behavioral) 패턴 - 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의하는 패턴

범위는 패턴을 클래스에 적용하는지 아니면 객체에 적용하는 지를 구분하는 것입니다

  • 클래스 패턴 - 클래스와 서브 클래스 간의 관련성을 다루는 패턴, 관련성은 주로 상속, 컴파일 타임에 정적으로 결정됨
  • 객체 패턴 - 객체 관련성을 다루는 패턴으로서, 런타임에 변경할 수 있으며 더 동적인 성격을 가집니다.

구분목적

구분 목적
생성
클라이언트와 클라이언트가 생성해야
하는 인스턴스 사이의 연결을 끊음
구조
클래스와 객체를 더 큰 구조로 만들 수 있게 구성을 사용
행동
클래스와 객체들이 상호 작용하는 방법과
역할을 분담하는 방법을 다룸
대상 클래스

상속
컴파일
Factory Method - 팩토리 메서드 Adapter - 어댑터(class) Interpreter - 인터프리터
Template Method - 템플릿 메서드
서브클래스가 단일 객체를 생성 어댑터를 이용해 동일한 인터페이스로 클래스를 제공 상속을 이용해 알고리즘과 제어 흐름을 관리
객체

구성
동적
런타임


Abstract Factory - 추상 팩토리
Builder - 빌더
Prototype - 프로토타입
Singleton - 싱글톤
Bridge - 브릿지
Composite - 컴포짓
Decorator - 데커레이터
Facade - 퍼사드
Flyweight - 플라이웨이
Proxy - 프록시
Chain of Responsibility 책임 연쇄
Command - 커맨드
Iterator - 이터레이터
Mediator - 중재자
Memento - 메멘토
Observer - 옵저버
State - 상태
Strategy - 전략
Visitor - 비지터
객체의 생성 객체를 더 큰 구조로 만들 수 있도록 구성을 사용 상호작용하는 방법과 역할을 분리

 

패턴의 대안

Prototype(프로토타입 패턴)은 Abstract Factory(추상 팩토리 패턴)의 대안이다.

구조가유사한 패턴

Composite(컴포짓 패턴)과 Decorator(데커레이터 패턴)는 의도는 다르지만 구조는 비슷하다.

 

패턴의 조합

Composite(컴포짓 패턴)은 Iterator(이터레이터 패턴)와 Visitor(비지터 패턴)를 함께 사용해야 할 때가 많다.

디자인 패턴을 조직하는 다른 방법은 패턴간의 참조 관계에 따라 관리하는 것

 

profile

Justin의 개발 로그

@라이프노트

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!