Design Patterns

[Design Patterns] Patterns의 종류

우라릭 2024. 1. 14. 01:37

개요

GoF의 디자인 패턴 책에 따르면 디자인 패턴은 크게 3가지로 나눌 수 있습니다. 본 문서에선 디자인 패턴의 3가지 유형에 대해 알아봅니다. 디자인 패턴의 종류들을 알아두면 각 디자인 패턴들이 어떤 문제를 해결하려고 하는지 짐작하는데 도움이 될 수 있습니다.

1. Creational Pattern

생성 패턴들은 객체화 과정을 추상화합니다. 시스템이 객체가 생성/구성/표현되는 방식을 몰라도 되게 해줍니다. 이 종류의 패턴들에는 공통적으로 나타나는 부분들이 있습니다.

 

1. 시스템이 사용하는 concrete class에 대한 정보를 캡슐화합니다. 즉, 인터페이스 등으로 구현을 숨깁니다.

2. 객체가 어떻게 생성되고 합쳐지는지(compositon) 숨깁니다.

 

이를 통해 시스템이 무엇을 누가 생성하는지, 언제/어떻게 생성된 객체를 가질지에 대해 유연성을 가질 수 있습니다.

 

Concrete class란?
Concrete class란 그들이 가진 메소드를 100% 구현한 클래스를 말합니다. 예를 들어, 추상 메소드를 가진 추상 클래스는 추상 메소드가 구현되어있지 않으므로 concrete class가 아닙니다. Concrete class는 다르게 말하면 객체화가 가능한 클래스로 볼 수 있습니다.

 

2. Structural Pattern

구조 패턴들은 클래스나 객체가 조합되서 큰 구조를 형성합니다. 이 패턴들은 상속을 이용해서 인터페이스나 구현체들을 합칩니다. 이 패턴들은 주로 독립적인 여러 라이브러리들을 한데 묶는데에 좋습니다.

혹은 새로운 기능을 수행하기 위해 객체를 합치는 방법에 대한 내용을 담고 있기도 합니다.  이 방법은 런타임에 조합을 변경할 수 있기 때문에 시스템에 유연성을 부여해줄 수 있습니다.

 

3. Behavior Pattern

행동 패턴들은 각 객체들에 어떤 역할을 할당할 것인지와 관련이 있습니다. 이 패턴들은 객체나 클래스의 패턴뿐만 아니라 그들이 상호작용하는 방법에 대한 패턴도 다룹니다.

'Design Patterns' 카테고리의 다른 글

[Design Patterns] Prototype  (0) 2024.02.25
[Design Patterns] Factory Method  (1) 2024.01.27
[Design Patterns] Builder  (0) 2024.01.20
[Design Patterns] Abstract Factory  (0) 2024.01.15
[Design Patterns] UML 이란?  (0) 2023.01.13