본문 바로가기

전체 글13

Head First Design Patterns : Factory Pattern Factory Method Pattern 팩토리 메서드 패턴 객체를 생성할 때 필요한 인터페이스를 정의하고, 어떤 클래스 인스턴스를 만들지 서브클래스에서 결정. new 연산자를 사용한 객체 생성 직접 호출들을 특별한 팩토리 메서드에 의한 호출로 대체. 서브클래스에서 이 메서드를 오버라이드 하여 생성될 객체들을 결정. 구조 product 생성될 product 인터페이스 concreteProduct product 인터페이스의 다양한 구현 creator product 객체들을 반환하는 factory method 존재. 반환은 creator가 하지만 생성의 주체가 아님. 일반적으로 핵심 비즈니스 로직이 있고 factory method는 이 로직을 product로 부터 분리 concreteCreator facto.. 2023. 12. 31.
Head First Design Patterns : Decorator Pattern Decorator Pattern 객체들을 새로운 행동들을 포함한 특수 래퍼 객체들 내에 넣어서 행동들을 해당 객체들에 연결시키는 디자인 패턴. 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안 다른 인스턴스의 동작에 영향을 주지 않고 동적으로 개별 객체 에 동작을 추가 구조 Component와 그 객체를 감쌀 Decorator 객체가 존재 Decorator 객체 안에 Component를 구성. 장점 sub class를 만들지 않고 객체의 행동을 확장. 런타임에 객체들에게 책임을 추가하거나 제거 여러 종류의 Decorator를 이용하여 여러가지 행동을 합성 단점 여러 Decorator 사용 시 특정 Decorator만 제거 하기 어려움 순서에 의존 하지 않는 방식으로 구현이 어려움. 초기화 .. 2023. 12. 20.
Publish-Subscribe Pattern 발행-구독 패턴 (Publish-Subscribe Pattern) 소프트웨어 아키텍처에서 사용되는 패턴 중 하나로 시스템의 다양한 구성 요소 간에 효율적으로 메시지를 교환하도록 도와주는 방식 적용하기에 적합한 상황 실시간 채팅 비동기 통신 필요한 경우 분산 시스템(분산 캐싱, 분산 로깅 등) Backend와 FrentEnd 실시간 동기화 필요한 상황 적용하기에 부적합한 상황 단순한 시스템과 소규머 애플리케이션 오디오 및 비디오 스트리밍 정기적인 작업이나 백그라운드 작업 비이벤트 중심 시스템 및 동기식 통신이 필요한 경우 Observer Pattern 비교 유사점 애플리케이션이나 웹 사이트의 한 구성 요소에서 다른 구성 요소로 데이터를 전송하는 것을 목표 두 디자인 모두 이벤트를 생성하는 생산자와 생성된 .. 2023. 12. 11.
Head First Design Patterns : Observer Pattern Observer Pattern 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신 되는 방식. 일대다 (one-to-many) 의존성을 정의. push방식 과 pull 방식. ≒ 출판-구독 (publish-subscribe) 패턴. 구조 Subject 객체와 Observer 객체가 존재 Subject 객체는 Observer객체에게 상태 변경을 알려야 하기 때문에 Observer Collection field와 observer의 구독과 해지, 객체의 상태가 변경 되었을 때 알려주는 메소드가 존재. Observer 객체는 각자 Subject객체의 상태를 받아 처리 하는 부분을 구현. 장점 느슨한 결합 (Loose Coupling) 주제(Subject)와 옵저버(Obser.. 2023. 12. 10.