소프트웨어 공학 공부
소프트웨어 공학 9주차 (디자인 패턴)
NaZZU
2025. 4. 29. 17:25
디자인 패턴
- 자주 사용하는 설계 형태를 정형화하여 이를 유형별로 설계 탬플릿을 만들어 둔 것
- 많은 개발자들이 경험상 체득한 설계 지식을 검증하고, 이를 추상화하여 일반화한 템플릿
장점
- 개발자(설계자) 간의 원할한 의사소통
- 소프트웨어 구조 파악 용이
- 재사용을 통한 개발 시간 단축
- 설계 변경 요청에 대한 유연한 대처
종류 : 27개
- 기본 패턴 : 4개
- 생성 패턴 : 5개
- 구조 패턴 : 7개
- 행위 패턴 : 11개
기본 패턴
- 객체지향 프로그램 에서 흔해 쓰는 기본적인 패턴
- 개념 실체 패턴
- 개념 클래스를 실체 클래스에서 분리하는 것은 중복되는 정보를 저장하지 않기 위해서이다
- 플레이어 역할 패턴 : 플레이어가 환경에 따라 다른 역할을 해야 할 때
- 위임 패턴 : 다른 클래스의 오퍼레이션에 작업을 요청
- 계층 구조 패턴 : 회사의 조직도, 파일 구조, 구문 트리 등 계층 구조를 다룰 때 필요
생성 패턴
- 팩토리 패턴
- 싱글턴 패턴
- 생성자를 private으로 선언
- 객체 생성을 static으로 선언
- getInstance()를 만들어 외부에서 사용하도록 함
- getInstance() 메서드를 동기화
- 프로토타입 패턴
- 빌더 패턴
- 추상 팩토리 패턴
구조 패턴
- 데코레이터 패턴
- 어댑터 패턴
- 컴포지트 패턴
- 브리지 패턴
- 퍼사드 패턴
- 플라이웨이트 패턴
- 프록시 패턴
행위 패턴
- 전략패턴
- 반복자 패턴
- 견본 패턴
- 책임 체인 패턴
- 중재자 패턴
- 통역자 패턴
- 상태 패턴
- 옵서버 패턴
- 방문자 패턴
- 커맨트 패턴
- 기념 패턴