본문 바로가기

ts23

[TS Design Patterns] 행동 패턴 - 방문자 Visitor - 알고리즘들을 그들이 작동하는 객체들로부터 분리할 수 있음 - 기존 코드를 변경하지 않고 기존 클래스 계층 구조에 새로운 행동들을 추가할 수 있도록 함 - 복잡하고 적용 범위가 좁음 - 예시 /** * The Component interface declares an `accept` method that should take the base * visitor interface as an argument. */ interface Component { accept(visitor: Visitor): void; } /** * Each Concrete Component must implement the `accept` method in such a way that * it calls the visi.. 2023. 11. 12.
[TS Design Patterns] 행동 패턴 - 템플릿 메서드 Template Method - 부모 클래스에서 알고리즘의 골격을 정의하지만, 해당 알고리즘의 구조를 변경하지 않고 자식 클래스들이 알고리즘의 특정 단계들을 오버라이드(재정의)할 수 있도록 함 - 기초 클래스에서 알고리즘의 골격을 정의할 수 있도록 함 - 프레임워크 사용자들에게 상속을 사용하여 표준 기능들을 확장하는 간단한 수단 제공 - 예시 /** * The Abstract Class defines a template method that contains a skeleton of some * algorithm, composed of calls to (usually) abstract primitive operations. * * Concrete subclasses should implement these.. 2023. 11. 12.
[TS Design Patterns] 행동 패턴 - 전략 Strategy - 알고리즘들의 패밀리를 정의하고, 각 패밀리를 별도의 클래스에 넣은 후 그들의 객체들을 상호교환할 수 있도록 함 - 행동들의 객체들을 객체들로 변환하며 이들이 원래 콘텍스트 객체 내에서 상호 교환이 기능하게 만들어 줌 - 원래 객체는 콘텍스트라고 불리며 전략 객체에 대한 참조를 포함함 - 콘텍스트는 행동의 실행을 연결된 전략 객체에 위임함 - 콘텍스트와 작업을 수행하는 방식을 변경하기 위해 다른 객체들은 현재 연결된 전략 객체를 다른 전략 객체와 대체 가능 - 다양한 프레임워크에서 사용자들이 클래스를 확장하지 않고 클래스의 행동을 변경할 수 있도록 자주 사용됨 - 예시 /** * The Context defines the interface of interest to clients. */.. 2023. 11. 12.
[TS Design Patterns] 행동 패턴 - 상태 State - 객체의 내부 상태가 변경될 때 해당 객체가 그의 행동을 변경할 수 있도록 함 - 객체가 행동을 변경할 때 객체가 클래스를 변경한 것처럼 보일 수 있음 - 상태 관련 행동들을 별도의 상태 클래스들로 추출하여 원래 객체가 자체적으로 작동하는 대신 상태 클래스들에 작업을 위임하도록 강제함 - TS에서 대규모 switch 기반 상태 머신들을 객체들로 변환하는데 사용 - 예시 /** * The Context defines the interface of interest to clients. It also maintains a * reference to an instance of a State subclass, which represents the current * state of the Context.. 2023. 11. 12.
반응형