반응형
디자인 패턴
디자인 패턴이란?
- 설계 문제에 대한 해답을 문서화 하기 위해 고안한 형식
- 반복되는 패턴의 원리에 대한 개념을 공학적인 측면에서 도입한 것
- 특정 코드의 일부분이 아님
- 라이브러리처럼 프로그램에 붙여넣을 수 없음
디자인 패턴을 도입하는 것이 해답이 아니다.
잘못 도입하면 문제가 될 수도 있음
장점
- 프로그램 전체 라인을 읽지 않아도 쉽게 인식하고 요점 파악 가능
- 추상적인 수준에서 다른 팀원들과 의사소통 효과적으로 할 수 있음
- 프로그래밍 언어, 개발중인 프로그램에 관계 없이 재사용 및 확장 가능
GoF - Gang of Four
- 객체지향 분야의 문제점을 분석해 24개 패턴으로 분류
- 기존 객체지향 설계 시 발생했던 문제를 카탈로그화 하여 패턴 정리
- 대규모 프로젝트의 진행에서 가장 중요한 요소는 통일된 개발방식의 공유
- 개발 방법을 정의하여 보다 통일화된 좋은 코드 작성 가능
- 구조만으로 패턴을 파악하는 것은 불가능
- 패턴을 파악하려면 개발자의 의도를 알아야함
GoF 디자인 패턴 분류
- 생성 패턴 : 객체 생성에 관련된 패턴
팩토리(Factory), 팩토리 메소드(Factory method), 추상 팩토리(Abstract Factory),
빌더(Builder), 프로토타입(Prototype), 싱글톤(Singleton)
- 구조 패턴 : 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
어댑터(Adapter), 브릿지(Bridge), 컴포지트(Composite), 데코레이터(Decorator),
퍼사드(Facade), 플라이웨이트(Flyweight), 프록시(Proxy)
- 행위 패턴 : 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
옵저버(Observer), 상태(State), 전략(Strategy), 템플릿(Template),
비지터(Visitor), 역할 사슬(Chain of Responsibility), 커맨드(Command),
인터프리터(Interpreter), 이터레이터(Iterator), 미디에이터(Mediator)
728x90
반응형