1. 요약

디자인 패턴은 소프트웨어를 설계하면서 자주 발생하는 문제들을 해결하기 위한 해결 방법을 일반화하여 정리한 것을 말합니다. 그래서 프로그램을 개발하면서 이미 많은 사람들이 고민했던 고민들을 쉽게 해결할 수 있다는 장점이 있고, 이를 이용하면 빠르게 프로그램을 개발할 수 있다는 장점이 있습니다. 그리고 이미 정리된 패턴을 사용하게 되면 팀원들과 소통이 빠르고 정확하게 이루어진다는 장점이 있습니다. 또 기존에 존재하는 패턴에 자신만의 기능을 추가하여 새로운 패턴을 만드는 것도 가능합니다. 

2. 종류

디자인 패턴으로 가장 유명한 GoF 디자인 패턴이 있습니다. GoF는 (Gang of Fout)으로 Erich Gamma, Richard Helm, Ralph Johnson, John Vissides 라는 사람들이 소프트웨어를 개발하면서 생기는 문제들을 구분하고 체계화하여 정리하였습니다. 이들은 23개의 디자인 패턴을 정리하고 이 23개의 패턴을 크게 3가지로 분류했습니다. 생성(Creational)패턴, 구조(Structural) 패턴, 행위(Behavioral) 패턴입니다.

1) Creational Pattern

생성패턴은 객체를 생성하는데 필요한 패턴들입니다. 객체의 생성을 캡슐화하여 전체적인 프로그램 구조에 영향을 주지 않으면서 확장성을 갖게 만든 패턴입니다. 아래와 같은 패턴이 생성패턴입니다.

팩토리 메서드 패턴(Factory Methods Pattern) / 추상 팩토리 패턴(Abstract Factory Pattern) / 싱글턴 패턴(Singleton Pattern) / 빌더 패턴(Builder Pattern) /  프로토타입 패턴(Prototype Pattern)

2) Structural Pattern

기존의 객체를 확장하거나 여러개의 객체를 이용하여 더 큰 객체나 구조를 형성하는 패턴입니다. 아래와 같은 패턴이 생성패턴에 속합니다.

어댑터 패턴(Adapter Pattern) / 브릿지 패턴(Bridge Pattern) / 컴포지트 패턴(Composite Pattern) / 데코레이터 패턴(Decorator Pattern) / 퍼사드 패턴(Facade Pattern) / 플라이웨이트 패턴(Flyweight Pattern) / 프록시 패턴(Proxy Pattern)

3) Behavioral Pattern

행위패턴은 객체나 클래스에서 행동을 묘사하는 패턴입니다. 하나의 행동이 여러 행동으로 영향을 주던지, 하나의 객체에서 여러 행동을 하는 것과 같은 기능을 하게 됩니다.

책임 연쇄 패턴(Chain of Responsibility Pattern) / 커맨드(Command Pattern) / 인터프리터 패턴(Interpreter Pattern) / 이터레이터 패턴(Iterator Pattern) / 미디에이터 패턴(Mediator Pattern) / 메멘토 패턴(Memento Pattern) / 옵저버 패턴(Observer Pattern) / 스테이트 패턴(State Pattern) / 스트래티지 패턴(Strategy Pattern) / 템플릿메서드 패턴(Template Method Pattern) /  비지터 패턴(Visitor 패턴)

 

+ Recent posts