CS/SoftwareEngineering

GoF 디자인 패턴

east-wind 2025. 4. 16. 11:17

1. 생성(Creational) 패턴 – 객체 생성 방식에 중점

1. Singleton 클래스의 인스턴스를 오직 하나만 생성하도록 보장
2. Factory Method 객체 생성을 서브클래스에서 처리. 객체 생성 책임을 위임
3. Abstract Factory 관련된 객체들을 구상 클래스에 의존하지 않고 그룹으로 생성
4. Builder 복잡한 객체 생성을 단계별로 구성 (같은 프로세스로 다양한 표현 가능)
5. Prototype 기존 객체를 복사(clone)하여 새 객체 생성

 

 

2. 구조(Structural) 패턴 – 클래스나 객체를 조합하여 더 큰 구조를 만듦

6. Adapter 인터페이스 호환이 안 되는 클래스들을 호환되도록 연결
7. Bridge 추상화와 구현을 분리하여 독립적으로 확장 가능하게 함
8. Composite 트리 구조처럼 객체를 구성하고, 부분-전체 관계를 동일하게 처리
9. Decorator 기존 객체에 기능을 동적으로 추가할 수 있음
10. Facade 복잡한 시스템에 단순한 인터페이스 제공
11. Flyweight 공유 가능한 객체를 재사용하여 메모리 절약
12. Proxy 실제 객체에 대한 대리인 역할 수행, 접근 제어 또는 로깅 등에 사용

 

3. 행위(Behavioral) 패턴 – 객체 간의 상호작용, 책임 분산

13. Chain of Responsibility 요청을 처리할 수 있는 객체를 체인 형태로 연결, 처리자는 자신 또는 다음 객체
14. Command 요청을 객체로 캡슐화 → 실행/취소/저장/재실행 등을 유연하게 처리
15. Interpreter 특정 언어의 문법을 해석하고 실행하는 방법을 제공
16. Iterator 컬렉션의 요소들을 순차적으로 접근할 수 있게 함
17. Mediator 객체들 간의 복잡한 상호작용을 중재자 객체가 관리
18. Memento 객체 상태를 저장하고 복원할 수 있게 함 (Undo 기능 구현에 적합)
19. Observer 상태 변화 시 등록된 객체들에게 자동 알림, 이벤트 기반
20. State 객체의 상태에 따라 행동이 변경되는 패턴, 상태 객체가 행동을 관리
21. Strategy 알고리즘을 각각의 객체로 정의하고 교체 가능하게 설계(인터페이스 이용)
22. Template Method 알고리즘의 구조를 상위 클래스에 정의하고, 세부 단계는 하위 클래스에서 구현(상속 이용)
23. Visitor 객체 구조에서 연산을 분리해서, 새로운 기능을 추가할 때 사용

'CS > SoftwareEngineering' 카테고리의 다른 글

테스트 목적에 따른 분류  (0) 2025.04.17
형상 관리 도구  (0) 2025.04.17
정적/동적 다이어그램  (0) 2025.04.16
응집도(Cohesion)/결합도(Coupling)  (0) 2025.04.16
테스팅 기법  (0) 2025.04.14