본문 바로가기

행위패턴12

[디자인패턴] 행위 패턴(3) : 인터프리터(Interpreter) 목차 인터프리터(Interpreter) 인터프리터 디자인 패턴은 주어진 언어에 대해 그 언어의 문법에 대한 표현을 정의하고, 이를 사용하여 해당 언어의 문장을 해석하는 패턴이다. 이 패턴의 어원은 프로그래밍 언어의 '인터프리터'에서 비롯되었다. 인터프리터란 코드를 직접 실행하는 프로그램이나 환경을 의미하는데, 이 패턴은 이러한 개념을 디자인 패턴에 적용한 것이다. 즉, 어떤 입력을 받아 이를 분석하고 실행하는 구조를 디자인 패턴 형태로 구현한 것이다. 컴퓨터가 입력받은 수식을 트리 형태로 만들고 후위 연산을 적용해 실행시키는 것과 마찬가지로 식을 만들어두고 저장했다가 하나씩 실행하는 상황에 사용하면 적합하다. 패턴 미적용 예시 C#을 사용한 간단한 게임 개발 상황에서 인터프리터 패턴을 적용하지 않은 경우.. 2024. 3. 25.
[디자인패턴] 행위 패턴(2) : 커맨드(Command) 목차 커맨드(Command) 커맨드 디자인 패턴은 행동 디자인 패턴의 한 종류로, 요청 자체를 캡슐화하는 방식이다. 이 패턴의 목적은 요청을 발생시키는 객체와 요청을 처리하는 객체 사이의 결합도를 줄이는 것이다. 이를 통해 요청을 큐에 저장하거나, 로그로 기록하고, 작업을 취소할 수 있는 유연성을 제공한다. "커맨드(Command)"라는 용어는 말 그대로 '명령'을 의미한다. 이 패턴에서 '명령'은 수행될 모든 동작(작업)을 객체로 캡슐화하는 것을 말한다. 객체 지향 프로그래밍에서는 이러한 명령을 객체의 형태로 표현하여, 실행할 작업과 관련된 모든 정보를 함께 묶어 관리한다. 패턴 미적용 예시 코드 게임 개발에 있어서, 커맨드 패턴을 적용하지 않고 직접 객체의 메소드를 호출하여 명령을 수행하는 방식은, .. 2024. 3. 25.
[디자인패턴] 행위 패턴(1) : 책임 연쇄(Chain of Responsibility) 목차 책임 연쇄(Chain of Responsibility) 책임 연쇄 디자인 패턴은 행동 패턴의 하나로, 요청을 처리할 수 있는 기회를 여러 객체에게 부여함으로써 객체 간의 결합도를 줄이는 데 목적이 있다. 이 패턴은 요청을 보내는 쪽과 이를 처리하는 쪽을 분리하고, 여러 객체를 연결하여 요청을 처리할 수 있는 체인을 형성한다. 어떤 객체가 요청을 처리할 수 없을 때는 다음 객체로 요청을 전달한다. 이 패턴의 이름은 실제로 책임을 연쇄적으로 전달한다는 점에서 유래했다. 패턴 미적용 예시 코드 게임 개발에서 책임 연쇄 패턴을 적용하지 않은 상황을 가정해보자. 예를 들어, 게임 내에서 캐릭터가 다양한 유형의 아이템을 사용하는 상황에서 각 아이템 유형별로 처리 로직을 갖는 경우다. public class I.. 2024. 3. 25.