본문 바로가기

디자인 패턴29

[TS Design Patterns] 구조 패턴 - 컴포지트 Composite (Object Tree) - 객체들을 트리 구조들로 구성한 후, 이러한 트리 구조들이 개별 객체들인 것처럼 작업할 수 있음 - 앱의 핵심 모델이 트리로 표현될 수 있을 때만 사용 권장 - 객체 트리의 모든 컴포넌트들에 대해 재귀적으로 행동을 실행할 수 있도록 함 - Component 인터페이스, Leaf 클래스, Composite (Container) 클래스 - 예시 /** * The base Component class declares common operations for both simple and * complex objects of a composition. */ abstract class Component { protected parent!: Component | null; .. 2023. 10. 24.
[TS Design Patterns] 구조 패턴 - 브리지 Bridge - 큰 클래스 또는 밀접하게 관련된 클래스들의 집합을 두 개의 개별 계층 구조 (추상화 및 구현)로 나눈 후 각각 독립적으로 개발할 수 있도록 함 - 상속에서 객체 합성으로 전환 - 한 클래스 내에서 모든 상태와 행동들을 갖는 대신 새 계층 구조의 객체를 참조하도록 함 - 추상화 (인터페이스) - 일부 객체에 대한 상위 수준의 제어 레이어 - 제어 레이어는 실제 작업을 수행해서는 안되며 구현 레이어 (플랫폼)에 위임해야 함 - ex) 추상화 - GUI, 구현 - GUI 레이어가 사용자와 상호작용하여 그 결과로 호출하는 배경 운영 체제 코드 (API) - 구현 - 브리지 패턴은 클래스들을 두 개의 계층 구조로 분리하도록 제안함 - 어떤 기능의 여러 변형을 가진 모놀리식 클래스를 나누고 정돈할 .. 2023. 10. 23.
[TS Design Patterns] 구조 패턴 - 어댑터 Adapter (Wrapper) - 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 함 - 어댑터: 한 객체의 인터페이스를 다른 객체가 이해할 수 있도록 변환하는 특별한 객체 (두 객체 사이의 래퍼 역할), 하나의 객체에 대한 호출을 캐치하고 두 번째 객체가 인식할 수 있는 형식과 인터페이스로 변환 - 객체 어댑터: 객체 합성 원칙 사용, 어댑터는 한 객체의 인터페이스를 구현하고 다른 객체는 래핑함 - 클래스 어댑터: 상속 사용, 동시에 두 객체의 인터페이스 상속 (다중 상속 지원하는 C++ 같은 언어에서만 사용 가능) - 어댑터 클래스는 기존 클래스를 사용하고 싶지만 그 인터페이스가 나머지 코드와 호환되지 않을 때 사용 - 예시 /** * The Target defines the domain.. 2023. 10. 23.
[디자인-UI 컴포넌트 패턴 스터디] - 첫 번째 미팅 2023년 10월 22일 일요일 디자인-UI 컴포넌트 패턴 스터디 첫 번째 미팅을 가졌습니다. 이번에 디자인 패턴 스터디는 처음 진행해보는 분야여서 사전에 걱정이 많았습니다. 아무래도 책을 기반으로 하지 않고 레퍼런스 위주로 진행하면서 실무 노하우의 경험들이 정립된 분야여서 어떻게 스터디의 목표를 설정하고 풀어나가면 좋을지 고민이 많았습니다. 간단히 정리하면 3가지입니다. 1. 사전에 TS Design Patterns - GoF 5가지, UI Design Patterns 5가지를 읽어옵니다. 2. 지난 주에 학습했던 패턴 중 하나의 패턴에 대해 적용 사례를 찾아옵니다. (미션) 3. 레퍼런스 자료를 읽으면서 궁금했던 점, 즉 질문을 정리합니다. 우선 첫 타임은 TS Design Patterns - GoF.. 2023. 10. 23.
반응형