본문 바로가기

행위패턴2

[C#/Unity][디자인패턴] 방문자 패턴(Visitor Pattern) 1. 방문자 패턴이란? - 알고리즘을 객체 구조에서 분리시키는 패턴. - 데이터 구조와 데이터 처리를 분리하여, 데이터 구조 내부에 방문자 클래스를 만들어 각각을 처리한다. - 방문자와 방문 공간을 분리하여, 방문 공간이 방문자를 맞이하고, 이후에 대한 행동은 방문자에게 위임하는 패턴. 2. 방문자 패턴을 사용하는 경우 - 자료구조(데이터)와 자료구조를 처리하는 로직(알고리즘)을 분리해야 할 경우 - 데이터 구조보다 알고리즘이 더 자주 바뀌는 경우 - 복잡한 객제 구조(ex. 객체 트리)의 모든 요소에 대해 작업을 수행해야 하는 경우 3. 방문자 패턴의 장점 - 구조를 수정하지 않고, 새로운 동작을 기존의 객체 구조에 추가할 수 있다. - 작업 대상(방문 공간)과 작업 항목(방문 공간을 가지고 하는 일).. 2023. 12. 31.
[C#/Unity][디자인패턴] 인터프리터 패턴(Interpreter Pattern) 1. 인터프리터 패턴이란? - 자주 등장하는 문법을 별개의 간단한 언어로 정의하고 재사용하는 패턴. - Expression이라는 추상 클래스를 만들어 사용하는 경우가 많음. - 반복되는 문제 패턴을 언어 또는 문법으로 정의하고 확장할 수 있음. - 트리구조로 인해 컴포지트 패턴과 유사한 형태를 띈다. 2. 인터프리터 패턴을 사용하는 경우 - 특정 언어 또는 문법이 반복되서 사용되는 경우 3. 인터프리터 패턴의 장점 1) 캡슐화 : 문법과 해석을 기본 로직에서 분리하여 별도의 클래스로 캡슐화되므로 모듈화되어 유지보수가 쉬워진다. 2) 쉬운 확장 : Expression 클래스에서 파생된 새로운 구현 클래스만 추가하면 DSL을 쉽게 확장할 수 있다. 3) 가독성 : 문법과 규칙을 계층구조를 이용해 명시적으로 .. 2023. 12. 12.