본문 바로가기

ts23

[TS Design Patterns] 구조 패턴 - 퍼사드 Facade - 라이브러리/프레임워크/다른 클래스들의 복잡한 집합에 대한 단순화된 인터페이스 제공 - 퍼사드: 움직이는 부분이 많이 포함된 복잡한 하위 시스템에 대한 간단한 인터페이스를 제공하는 클래스 - 복잡한 하위 시스템에 대한 제한적이지만 간단한 인터페이스가 필요할 때 사용 - 퍼사드는 기존 객체들을 위한 새 인터페이스를 정의, 어댑터는 기존의 인터페이스를 사용할 수 있게 만듦 - 앱의 전반적인 복잡성을 줄이는 동시에 원치 않는 의존성들을 한 곳으로 옮기는 것들 도움 - 예시 /** * The Facade class provides a simple interface to the complex logic of one or * several subsystems. The Facade delegates t.. 2023. 10. 28.
[TS Design Patterns] 구조 패턴 - 데코레이터 Decorator (Wrapper) - 객체들을 새로운 행동들을 포함한 특수 래퍼 객체들 내에 넣어서 위 행동들을 해당 객체들에 연결시킴 - 상속 대신 집합 관계 또는 합성을 사용함 - 래퍼는 일부 대상 객체와 연결할 수 있는 객체임 - 래핑된 객체와 같은 인터페이스 구현 - 민감한 데이터를 해당 데이터를 실제 사용하는 코드와 별도로 압축하고 암호화할 수 있음 - 객체들을 사용하는 코드를 훼손하지 않으면서 런타임에 추가 행동들을 객체들에 할당할 수 있을 때 사용 - final 키워드가 있어서 상속을 이용한 클래스 확장이 되지 않을 때 사용 가능 - 어댑터는 기존 객체의 인터페이스 변경, 데코레이터는 객체를 해당 객체의 인터페이스를 변경하지 않고 향상, 재귀적 합성 지원 - 어댑터는 다른 인터페이스, 프록.. 2023. 10. 28.
[TS Design Patterns] 구조 패턴 - 프록시 Proxy - 다른 객체에 대한 대체 또는 placeholder를 제공할 수 있음 - 원래 객체에 대한 접근을 제어하므로, 요청이 원래 객체에 전달되기 전 또는 후에 무언가를 수행할 수 있도록 함 - 원래 서비스 객체와 같은 인터페이스로 새 프록시 클래스를 생성하도록 제안 -> 프록시 객체를 원래 객체의 모든 클라이언트들에 전달하도록 앱을 업데이트 할 수 있음 - 프록시는 지연된 초기화 및 결과값 캐싱을 클라이언트와 실제 DB 객체가 알지 못하는 상태에서 처리 가능 - 서비스의 객체 수명 주기 관리 가능 - 클라이언트가 사용하는 서비스 객체를 대신하는 객체를 제공하는 구조 디자인 패턴 - 클라이언트 요청을 수신하고, 일부 작업(접근 제어, 캐싱 등)을 수행한 다음 요청을 서비스 객체에 전달함 - 서비스 .. 2023. 10. 26.
[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.
반응형