디자인 패턴
소프트웨어 개발에서 반복적으로 발생하는 문제해결을 위해 제안된 재사용 가능한 설계 방법이나 해결 방법
사용이유?
코드 재사용성: 검증된 해결책을 적용하여 개발 속도 향상
코드 가독성 및 유지보수성: 명확한 구조와 의도, 협업과 유지보수 용이
일관성: 동일한 패턴 이해로 코드 품질 향상
종류?
1. 생성 패턴 (Creational Pattern) : 객체 생성 방법과 과정을 캡슐화하여 유연하고 재사용 가능하게 만드는 패턴
- 싱글턴 패턴 (Singleton) : 한 클래스에 하나의 인스턴트만 존재하도록 보장
- 심플 팩토리 패턴 (Simple Factory Pattern) : 객체 생성 로직 캡슐화로 특정 클래스 인스턴스 반환
- 팩토리 메서드 패턴 (Factory Method) : 객체 생성을 서브클래스에 위임
- 추상 팩토리 패턴 (Abstract Factory) : 관련 객체를 단계적으로 생성
- 빌더 패턴 (Builder) : 복잡한 객체를 단계적으로 생성
- 프로토타입 패턴 (Prototype) : 기존 객체를 복사하여 새 객체 생성
2. 행동 패턴 (Behavior Patterns) : 객체간 상호작용, 책임분배, 알고리즘 구현 방법에 관련된 패턴
- 명령 패턴 (Command) : 요청 캡슐화, 호출자와 수신자 분리
- 상태 패턴 (State) : 객체 상태에 따라 다른 동작 수행
- 전략 패턴 (Strategy) : 실행 중 알고리즘 선택
- 템플릿 메서드 패턴 (Template Method) : 알고리즘 뼈대 정의, 세부사항을 서브클래스에서 구현
- 책임 연쇄 패턴 (Chain of Resposibility) : 요청을 처리할 객체를 체인으로 연결
- 옵저버 패턴 (Observer) : 객체 상태 변경시 종속된 객체에 알림
- 중재자 패턴 (Mediator) : 객체 간 통신 중앙 집중화
- 메멘토 패턴 (Memento) : 객체의 상태 저장, 필요시 상태 복원
- 반복자 패턴 (Iterator) : 컬렉션내 요소 순회
- 방문자 패턴 (Visitor) : 객체 구조를 변경하지 않고 새로운 기능 추가
3. 구조 패턴 (Structural Patterns) : 객체간 관계 정의, 구조 설계를 용이하게 돕는 패턴, 유연하고 효율적으로 유지하면서 더 큰 구조로 조합하는 방법
- 퍼사드 패턴 (Facade) : 복잡한 시스템을 단순한 인터페이스로 감싸기
- 어댑터 패턴 (Adaptor) : 서로 다른 인터페이스 연결
- 데코레이터 패턴 (Decorator) : 객체에 동적으로 새로운 기능 추가
- 프록시 패턴 (Proxy) : 다른 객체에 대한 접근 제어
- 플라이웨이트 패턴 (Flyweight) : 공유를 통해 메모리 사용 최적화
- 브리지 패턴 (Bridge) : 추상화와 구현을 분리하여 독립적으로 확장
- 컴포지트 패턴 (Composite) : 트리 구조로 객체를 구성해 일관된 방법으로 처리
'JS > [inflearn] TS JS 디자인패턴' 카테고리의 다른 글
생성 패턴 (Creational Pattern) _ 빌더(Builder) (0) | 2025.01.18 |
---|---|
생성 패턴 (Creational Pattern) _ 추상 팩토리(Abstract Factory) (0) | 2025.01.17 |
생성 패턴 (Creational Pattern) _ 팩토리 메서드(Factory Method) (0) | 2025.01.16 |
생성 패턴 (Creational Pattern) _ 싱글턴 (Singleton) (0) | 2025.01.16 |
SOLID 원칙 (0) | 2025.01.16 |