디자인패턴
소프트웨어 설계에서 공통적으로 발생하는 문제를 다루는 보편적이고 반복해서 사용할 수 있는 방법. 문제를 해결하기 위한 설명이나 템플릿으로 보면 된다.
디자인패턴을 사용할 때 장점
개발 절차의 속도를 높일 수 있다.
재사용 가능한 구조적 개념으로 구성되어 있기 때문에 믿을 수 있다.
디자인 패턴을 사용하기 위한 조건
- 주어진 문제를 명확, 세밀하게 이해한다.
- 디자인 패턴이 문제에 일치하는지 다시한번 확인해본다.
- 다른 패턴들 사이에서 관계성을 찾고 변경해야할 사항을 결정한다.
패턴 여러가지의 디자인 패턴은 3가지의 범주로 분류된다.
범주는 아래와 같다.
생성패턴 : 객체생성 메커니즘을 다룬다. 객체의 생성을 다루는 객체 생성 패턴, 클래스 인스턴스 생성을 다루는 클래스 생성 패턴으로 분류된다.
ex: Factory, Abstract Factory, Builder, Protype, Singleton 패턴.구조패턴: 객체들과 클래스들이 커다란 구조를 형성하기 위해 결합될 수 있는 방법을 설명한다. 클래스패턴은 상속의 도움을 받아 추상화를 설명하고 어떻게 프로그램에 더 유용한 인터페이스를 제공할 수 있는지 설명하는것이고, 객체 패턴은 객체들이 크고 더 복잡한 구조를 형성하기 위해 연결되고 구성되는지 설명한다.
ex: Adapter, Bridge, Composite, Decorator, Flyweight, Proxy 패턴행위패턴: 객체 사이의 상호 작용과 관련된 것들이다. 이들은 객체간에 공통의 통신 패턴을 파악하고 이러한 패턴을 실현한다.
ex: Chain of Responsibility, Command, Interpreter, iterator, Mediator, Memento, Observer, State, Strategy,Template, Vistor 패턴