IT강의/디자인패턴

디자인 패턴의 종류

샤핑 2021. 4. 20. 19:26
728x90
반응형

이번 시간에는 디자인 패턴의 종류를 살펴보겠습니다. 디자인 패턴이란 객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴을 뜻합니다. 편의를 위해 많이 사용되는 클래스의 구조라고 생각하시면 됩니다. 개인적으로 가장 좋아하는 내용 중 하나인데 그 이유는 게임으로 비유하기 정말 좋기 때문입니다. 디자인 패턴은 개념만이 아니라 클래스의 구조를 전체적으로 이해하는 것이 중요한데, 일단 지금은 종류만 살펴보고 자세한 내용은 게시글 하나하나씩 알려드리도록 하겠습니다.

 
# 아직 모든 게시글이 다 업로드되지 않았기 때문에 간단한 설명 밖에 없습니다. 게시글이 업로드 될 때마다 링크를 올려서 점차 수정해 나가겠습니다.

 

(1) 스트래티지 패턴

- 객체의 동작들을 캡슐화한 다음 어떤 동작을 사용할지 클라이언트(사용자)가 결정합니다.

- 원문: Encapsulates interchangeable behaviors and uses delegation to decide which one to use.

 

(2) 옵저버 패턴

- 해당 객체가 변경되었을 때 알림받을 수 있습니다.

- 원문: Allows objects to be notified when state changes.

 

(3) 데코레이터 패턴

- 객체를 랩핑하는 방식으로 새로운 동작을 하나씩 추가합니다.

- 원문: Wraps an object to provide new behavior.

 

(4) 팩토리 매소드 패턴

- 서브 클래스가 어떤 클래스를 생성할지 결정합니다.

- 원문: Subclasses decide which concrete classes to create.

 

(5) 추상 팩토리 패턴

- 클라이언트 어떤 클래스를 생성할지 결정합니다.

- 원문: Allows a client to create families of objects without specifying their concrete classes.

 

(6) 싱글턴 패턴

- 오로지 객체 하나만 생성되도록 합니다.

- 원문: Ensures one and only object is created.

 

(7) 커맨드 패턴

- 요청을 객체로 캡슐화합니다.

- 원문: Encapsulates a request as an object.

 

(8) 어댑터 패턴

- 객체를 랩핑하고 다른 인터페이스를 제공합니다.

- 원문: Wraps an object and provides a different interface to it.

 

(9) 퍼사드 패턴

- 여러 클래스의 인터페이스를 간소화합니다.

- 원문: Simplifies the interface of a set of classes.

 

(10) 템플릿 메소드 패턴

- 서브 클래스에서 메소드 내부를 구현합니다.

- 원문: Subclasses decide how to implement steps in an algorithm.

 

(11) 이터레이터 패턴

- 구체적인 내용을 드러내지 않고 객체들한테 접근하는 방법을 제공합니다.

- 원문: Provides a way to traverse a collection of objects without exposing its implementation.

 

(12) 컴포지트 패턴

- 단일 객체와 다중 객체를 동일하게 취급합니다.

- 원문: Clients treat collections of objects and individual objects uniformly.

 

(13) 스테이트 패턴

- 객체의 상태들을 캡슐화한 다음 때가 되었을 때 다음 상태로 변경합니다.

- 원문: Encapsulates state-based behaviors and uses delegation to switch between behaviors.

 

(14) 프록시 패턴

- 객체를 랩핑하는 방식으로 접근을 제어합니다.

- 원문: Wraps an object to control access to it.

 

(15) 컴파운드 패턴

2가지 이상의 패턴을 혼합해서 사용하는 방식입니다.

 

 

이 외에도 브리지 패턴, 빌더 패턴, 역할 사슬 패턴, 플라이웨이트 패턴, 인터프리터 패턴, 미디에이터 패턴, 메멘토 패턴, 프로토타입 패턴, 비지터 패턴 등도 있는데 일단 설명은 생략하겠습니다.

다음 게시글에서는 위의 패턴들을 하나씩 게시글마다 설명해드리겠습니다.

 

 

<출처>

Head First Design Patterns, 엘리자베스 프리먼 및 캐시 시에라, 한빛미디어, p.610

728x90
반응형
LIST