디자인 패턴 정의
디자인 패턴은 프로그램을 설계할 때 발생하는 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 "규약" 형태로 만들어 놓은 것이다. 이러한 패턴을 기반으로 하여 라이브러리나 프레임워크가 생성된다.
1. 라이브러리와 프레임워크의 기반
라이브러리와 프레임워크의 차이
라이브러리
- 폴더명, 파일명에 대한 규칙이 없고 자유도가 높음. Custom 가능.
- 필요할 때마다 라이브러리 호출 혹은 설치 가능.
프레임워크
- 폴더명, 파일명에 대한 규칙이 있으며 라이브러리에 비해 엄격하다. 제어의 역전.
- 코드에 대한 통제권이 개발자가 아닌 프레임워크에 있다.
2. 디자인 패턴의 종류
디자인 패턴은 크게 생성 패턴, 구조 패턴, 행동 패턴으로 분류된다.
생성 패턴
- 정의: 객체 생성 방법이 들어간 디자인 패턴. 클래스로부터 객체를 어떻게 생성할 것인가에 대한 패턴.
- 예시: 싱글톤, 팩토리, 추상팩토리, 빌더, 프로토타입 패턴
구조 패턴
- 정의: 객체나 클래스 등으로 큰 구조를 만들 때 유연하고 효과적으로 만드는 방법이 들어간 디자인 패턴.
- 예시: 프록시, 어뎁터, 브릿지, 복합체, 데코레이터
행동 패턴
- 정의: 객체나 클래스 간의 알고리즘, 책임 할당에 관한 디자인 패턴. 한 객체가 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배할 것인가에 대한 패턴.
- 예시: 이터레이터, 옵저버, 전략, 책임연쇄, 커맨드 패턴
기타
REF