본문 바로가기

디자인 패턴

Gof 디자인 패턴 분류

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 는 소프트웨어 개발 영역에서 디자인 패턴을 구체화하고 체계화한 Gof(Gang of Four)라 불리는 사람들의 이름이다. 

이들은 'Design Patterns : Elements of Reusable Object-Oriented Software' 라는 책에서 디자인 패턴을 23가지로 정리하고 생성, 구조, 행위의 3가지로 분류 했다.

  생성 패턴 구조 패턴 행위 패턴
패턴이름 추상 팩토리(Abstract Factory)
빌더(Builder)
팩토리 메서드(Factory Method)
프로토타입(Protoype)
싱글턴(Singleton)

어댑터(Adapter)
브리지(Bridge)
컴퍼지트(Composite)
데커레이터(Decorator)
퍼샤드(facade)
플라이웨이트(Flyweight)
포록시(Proxy)
책임 연쇄(Chin of Responsibility)
커맨드(Commend)
인터프리터(Interpreter)
이터레이터(Iterator)
미디에이터(Mediator)
메멘토(Memento)
옵저버(Observer)
스테이트(State)
스트래티지(Strategy)
템플릿 메서드(Template Method)
비지터(Visitor

생성 패턴

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

 

구조패턴

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

예를 들어 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공하거나 객체들을 서로 묶어 새로운 기능을 제공하는 패턴이다.

 

행위 패턴

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

가령 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하는지, 또 그렇게 하면서도 객체 사이의 결합도를 최소화하는 것에 중점을 둔다.