[GOF] 디자인 패턴

임우진·2023년 7월 27일
post-thumbnail

1. 디자인 패턴이란?

프로그램을 설계할 때 발생하였던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것

디자인 패턴이란 프로그램을 설계할 때 발생하였던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것을 의미한다. 즉 과거의 소프트웨어 개발 과정에서 반복적으로 일어나는 문제를 해결하는 설계 방안을 정리하고 이름을 붙여 이후에 재사용하기 좋은 형태로 정리한 것이다.

2. 디자인 패턴의 종류

생성 패턴, 구조 패턴, 행위 패턴

디자인 패턴은 크게 3가지로 나눌 수 있다.

먼저 생성 패턴(Creational Pattern)이다. 객체의 생성에 관련된 패턴으로 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공한다.

다음은 구조 패턴(Structural Pattern)이다. 구조 패턴은 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴이다. 예를 들어 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공하거나 객체들을 서로 묶어 새로운 기능을 제공하는 패턴이다.

마지막으로 행위 패턴(Behavioral Parrern)이다. 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴으로 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하는지, 또 그렇게 하면서도 객체 사이의 결합도를 최소화하는 것에 중점을 두는 방식이다.

3. 생성 패턴

객체의 생성에 관련된 패턴

  • 싱글톤 패턴 : 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴

4. 구조 패턴

클래스나 객체를 조합해 더 큰 구조를 만드는 패턴

5. 행위 패턴

객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴

  • 전략 패턴 : 실행 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 패턴

이후 공부하며 추가 예정

0개의 댓글