자주 사용하는 설계 패턴을 정형화 해서 이를 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계이다. 알고리즘과는 유사하지만, 명확하게 정답이 있는 형태는 아니고 프로젝트 상황에 따라 맞춰 적용이 가능하다.
장점 | 단점 |
---|---|
개발자간의 원활한 소통👌🏼 | OOP 설계 및 구현을 해야함 |
SW 구조 파악이 쉬워짐 | 초기 투자 비용이 부담됨 |
한번 만들어진 OOP를 통한 개발 시간 단축 | |
설계 변경 요청에 대한 유연하게 대처가능 |
생성 패턴 : 생성패턴은 인스턴스를 만드는 절차를 추상화하는 패턴. 시스템으로부터 객체의 생성 방법을 분리해내기 위한 패턴. 생성패턴은 시스템이 어떤 구체 클래스를 사용하는지, 또한 인스턴스들이 어떻게 만들어지고 어떻게 합성되는지에 대한 정보를 완전히 가려주기도 한다.
Factory Method, Singleton, Prototype, Builder, Abstract Factory, Chaining
구조 패턴 : 프로그램 내의 자료구조나 인터페이스 구조 등 프로그램 구조를 설계하는데 활용 될 수 있는 패턴 클래스, 객체들의 구성을 통해 더 큰 구조도 만들 수 있게 해주는 패턴. 큰 규모의 시스템에서는 많은 클래스들이 서로 의존성을 갖는데 이런 복잡한 구조를 개발하기 쉽게 만들어주고 유지보수 또한 쉽게 한다.
Adapter, Composite, Bridge, Decorator, Facade, Flyweight, Proxy
행위 패턴 : 반복적으로 사용되는 객체들의 상호작용을 패턴화 한 것으로, 클래스나 객체들의 상호작용 하는 방법과 책임을 분산할 때 사용하는 패턴. 행위 관련 패턴을 사용해 독립적으로 일을 처리하고자 할 때 사용됨.
Template Method, Interpreter, Iterator, Observer, Strategy, Visitor, Chain of responsibility, Command, Mediator, State, Memento