토픽 51 / 192·소프트웨어 설계와 아키텍처
GoF 디자인 패턴 심화 (Gang of Four Design Patterns)
GoF 디자인 패턴 심화 (Gang of Four Design Patterns)
GoF 23개 객체지향 설계 패턴의 구현 수준 심화 정리
생성 패턴 심화
- •Singleton: Eager/Lazy/DCL/Holder/Enum 구현, 멀티스레드 안전, 테스트 어려움 → DI 결합 권장
- •Factory Method: Creator가 팩토리 메서드 선언, 서브클래스가 구체 생성, OCP 준수
- •Builder: Fluent Builder(메서드 체이닝), Telescoping Constructor 문제 해결, 불변 객체 생성
구조 패턴 심화
- •Adapter: 클래스 어댑터(상속) vs 객체 어댑터(합성/권장), 레거시 통합
- •Proxy: 가상(지연로딩)/보호(접근제어)/원격(네트워크), Spring AOP, Decorator와 차이(접근제어 vs 기능추가)
- •Facade: 서브시스템 복잡성 은닉, JdbcTemplate/SLF4J
- •Decorator: 동적 기능 추가, 중첩 가능, Java I/O, Python @decorator
행위 패턴 심화
- •Strategy: 알고리즘 교체 캡슐화, Strategy(클라이언트 선택) vs State(자동 전환)
- •Observer: Subject→Observer 자동 통지, Push vs Pull, Pub/Sub 기초
- •Command: 요청 객체화(execute/undo), Undo/Redo/큐잉/매크로
- •State: 상태별 클래스로 if/switch 제거, TCP/주문 상태 머신
- •Template Method: 부모가 골격 정의, 하위가 세부 구현, 할리우드 원칙
비교: 생성(객체 생성 캡슐화) vs 구조(인터페이스 적응/확장) vs 행위(알고리즘/행위 캡슐화)
연관: SOLID, OOP, 리팩토링, 클린 코드