디자인 패턴이란 소프트웨어 개발에서 발생하는 문제를 해결하기 위한 일종의 설계 방식을 의미한다.
디자인 패턴은 생성패턴, 구조 패턴, 행동패턴 이렇게 3가지의 카테고리로 분류된다.
- 생성 패턴 : 객체 생성에 대한 패턴
- 구조 패턴 : 클래스와 객체를 조합하는 방식의 패턴
- 행동 패턴 : 객체들의 상호 작용과 책임 분산을 정리한 패턴
생성 패턴은 객체를 생성하는 방법에 중점을 둔 패턴이다.
종류 : 싱글턴, 팩토리 메서드, 추상 팩토리, 빌더, 프로토타입 패턴 ...
장점 : 시스템의 다른 부분들과 독립적으로 객체를 생성 및 교체 하여 효율적인 개발이 가능하며 유지 보수에도 용이하다.
객체와 클래스의 관계를 재정의하여 새로운 구조로 만드는 패턴을 의미한다.
종류 : 어댑터, 퍼사드, 데코레이터, 프록시...
장점 : 객체와 클래스간의 구조를 변경하여 코드의 확장성을 향상시키며 유지보수와 재사용성을 높여 복잡도 높은 시스템 구축에 효율적입니다.
객체의 상호작용과 책임 분산에 초점을 둔 디자인 패턴이다.
종류 : 커맨드, 옵저버, 스테이트...
장점 : 복잡한 객체 간의 통신을 간소화 하며 객체의 독립성을 유지 시킬 수 있다.