본문 바로가기

C++66

메멘토 패턴(Memento Pattern)이해하기 : 쉽게 설명한 디자인 패턴(C++) 메멘토 패턴(Memento Pattern)이란? 메멘토 패턴은 객체의 상태를 저장하고 이전 상태로 복원할 수 있는 디자인 패턴입니다. 이 패턴은 객체의 내부 상태를 캡슐화하지 않고 외부 객체에 저장하고 복원할 수 있게 해줍니다. 이 패턴은 주로 '실행 취소' 기능을 구현할 때 사용됩니다. 메멘토 패턴은 세 가지 주요 구성 요소로 이루어져 있습니다: Originator: 상태를 저장하고 복원할 수 있는 객체입니다. Memento: Originator의 상태를 저장하는 객체입니다. Caretaker: Memento를 저장하고 관리하는 객체입니다. 예시 코드 다음은 C++로 작성된 간단한 메멘토 패턴의 예입니다. #include #include #include // Memento class Memento { .. 2024. 1. 29.
해석자 패턴(Interpreter Pattern) 이해하기 : 쉽게 설명한 디자인 패턴(C++) 해석자 패턴(Interpreter Pattern)이란? 해석자 패턴은 주어진 언어의 문법을 위한 표현을 정의하고, 이 언어로 작성된 문장을 해석하는 해석자를 사용하는 디자인 패턴입니다. 이 패턴은 주로 문법 트리를 구성하고 이를 통해 문장을 해석하는 데 사용됩니다. 해석자 패턴은 다음과 같은 경우에 유용합니다: 복잡한 문법을 가진 언어를 해석해야 하는 경우 문법 트리를 구성하고 이를 통해 문장을 해석해야 하는 경우 예시 코드 다음은 C++로 작성된 간단한 해석자 패턴의 예입니다: #include #include // Abstract Expression class AbstractExpression { public: virtual ~AbstractExpression() = default; virtual vo.. 2024. 1. 29.
명령 패턴(Command Pattern) 이해하기 : 쉽게 설명한 디자인 패턴(C++) 명령 패턴(Command Pattern)이란? 명령 패턴은 행동 디자인 패턴 중 하나로, 요청을 객체의 형태로 캡슐화하여 서로 다른 사용자의 매개 변수를 캡슐화합니다. 이 패턴은 요청 자체를 객체로 만들어서 이를 클라이언트에게 전달하는 방식을 사용합니다. 이렇게 하면 클라이언트는 요청이 서비스를 어떻게 수행하는지 알 필요 없이 서비스를 사용할 수 있습니다. 명령 패턴은 다음과 같은 경우에 유용합니다: 요청을 큐에 넣고 나중에 실행하려는 경우 요청을 로그에 기록하고 시스템 충돌 후에 요청을 재실행하려는 경우 구조화된 요청을 발행하는 것이 필요한 경우, 즉 요청을 발행하는 객체와 요청을 수행하는 객체를 분리하려는 경우 예시 코드 다음은 C++로 작성된 간단한 명령 패턴의 예입니다: #include #incl.. 2024. 1. 29.
책임 연쇄 패턴(Chain of Reponsibility Design Pattern) 이해하기 : 쉽게 설명한 디자인 패턴(C++) 책임 연쇄 패턴은 행동 디자인 패턴 중 하나로, 요청을 처리할 수 있는 객체의 체인을 만드는 패턴입니다. 이 패턴은 요청을 보낸 객체와 요청을 받아 처리하는 객체 사이의 결합을 피하도록 돕습니다. 요청은 체인의 객체들을 통과하며, 각 객체는 요청을 처리하거나 다음 객체로 전달합니다. 1.예시 코드 다음은 C++로 작성된 책임 연쇄 패턴의 예시 코드입니다. #include // Handler: Abstract base class for handlers class Handler { public: virtual Handler* setNext(Handler* handler) = 0; virtual std::string handle(std::string request) = 0; }; // BaseHandler: .. 2024. 1. 29.