본문 바로가기

디자인 패턴29

[TS Design Patterns] 행동 패턴 - 메멘토 Memento (Snapshot) - 객체의 구현 세부 사항을 공개하지 않으면서 해당 객체의 이전 상태를 저장하고 복원할 수 있게 해줌 - 메멘토는 상태 스냅샷들의 생성을 해당 상태의 실제 소유자인 originator 객체에 위임함 -> 다른 객체들이 '외부'에서 상태를 복사하려 시도하는 대신, 자신의 상태에 대해 완전한 접근 권한을 갖는 클래스가 자체적으로 스냅샷 생성 가능 - 메멘토라는 특수 객체에 객체 상태의 복사본을 저장하도록 제안 - 메멘토를 생성한 객체를 제외한 다른 어떤 객체도 해당 메멘토에 접근할 수 없음 - originator는 메멘토에 대한 전체 접근 권한이 있지만, caretaker는 메타 데이터만 접근 가능 - caretaker에 메멘토 저장 가능, 제한된 인터페이스를 통해서만 메멘.. 2023. 11. 7.
[디자인-UI 컴포넌트 패턴 스터디] - 세 번째 미팅 2023년 11월 5일 일요일 디자인-UI 컴포넌트 패턴 스터디 세 번째 미팅을 가졌습니다. 본격적으로 스터디 시작 전에 습관 관련된 영상과 동기 부여 영상을 시청했습니다. 이후 다음과 같은 내용들을 학습했습니다. TS Design Patterns - 구조 패턴 2가지 - Flyweight - Proxy - 행동 패턴 3가지 - Chain of Responsibility - Command - Iterator UI Component Patterns - Design Patterns 5가지 -Observer - Module - Mixin - Mediator/Middleware - HOC 항상 저 혼자서 요약하고 말하고 질문하고 그랬었는데, 오늘부터는 돌아가면서 이야기하는 기회를 가지면 좋을 것 같아서 핑퐁 .. 2023. 11. 5.
[TS Design Patterns] 행동 패턴 - 반복자 Iterator - 컬렉션 요소들의 기본 표현(리스트, 스택, 트리 등)을 노출하지 않고 하나씩 순회할 수 있도록 함 - 컬렉션의 순회 동작을 반복자라는 별도의 객체로 추출 - 컬렉션이 내부에 복잡한 데이터 구조가 있지만 구조의 복잡성을 보안이나 편의상의 이유로 클라이언트들로부터 숨기고 싶을 때 사용 - 앱 전체에서 순회 코드의 중복을 줄이기 - 코드가 다른 데이터 구조들을 순회할 수 있기 원할 때, 또는 이러한 구조들의 유형을 미리 알 수 없을 때 사용 - 복잡한 데이터 구조의 내부 세부 정보를 노출하지 않고 해당 구조를 차례대로 순회할 수 있도록 함 - 예시 /** * Iterator Design Pattern * * Intent: Lets you traverse elements of a collec.. 2023. 11. 5.
[TS Design Patterns] 행동 패턴 - 커맨드 Command (Action, Transaction) - 요청을 요청에 대한 모든 정보가 포함된 독립 실행형 객체로 변환 - 다양한 요청들이 있는 메서드들을 인수화할 수 있고, 요청의 실행을 지연 또는 대기열에 넣을 수 있음, 또 실행 취소할 수 있는 작업 지원 - 올바른 소프트웨어 디자인은 종종 관심사 분리의 원칙을 기반으로 함 - GUI 객체들이 비즈니스 로직에게 직접 요청을 보내지 않고 모든 요청 세부 정보들을 요청을 작동시키는 단일 메서드를 가진 별도의 커맨드 클래스로 추출하라고 제안 - 커맨드 객체들은 다양한 GUI 객체와 비즈니스 논리 객체들 간의 링크 역할을 함 - GUI는 커맨드를 작동시킬 뿐 다른 어떤 것도 알 필요 없음 커맨드가 모든 세부 사항들을 처리함 - 작업들로 객체를 매개변수화 .. 2023. 11. 5.
반응형