본문 바로가기

분류 전체보기79

템플릿 메서드 패턴(Template Method Pattern)이해하기 : 쉽게 설명한 디자인 패턴(C++) 템플릿 메서드 패턴(Template Method Pattern)이란? 템플릿 메서드 패턴은 알고리즘의 구조를 메서드에 정의하고, 일부 단계를 서브클래스에서 오버라이드하는 디자인 패턴입니다. 이 패턴을 사용하면 알고리즘의 구조를 변경하지 않고 알고리즘의 특정 단계를 재정의할 수 있습니다. 템플릿 메서드 패턴은 다음 두 가지 주요 구성 요소로 이루어져 있습니다: AbstractClass: 템플릿 메서드를 정의하고, 알고리즘의 각 단계를 정의하는 메서드(일부는 기본 구현을 제공하고, 일부는 서브클래스에서 구현해야 함)를 포함합니다. ConcreteClass: AbstractClass에서 정의한 메서드를 오버라이드하여 알고리즘의 특정 단계를 구현합니다. 예시 코드 다음은 C++로 작성된 간단한 템플릿 메서드 패.. 2024. 1. 29.
상태 패턴(State Pattern)이해하기 : 쉽게 설명한 디자인 패턴(C++) 상태 패턴(State Pattern)이란? 상태 패턴은 객체의 내부 상태에 따라 여러 행동을 캡슐화하는 디자인 패턴입니다. 이 패턴을 사용하면 객체의 클래스를 변경하지 않고도 객체의 행동을 변경할 수 있습니다. 상태 패턴은 객체가 내부 상태에 따라 행동을 변경해야 할 때 유용합니다. 상태 패턴은 세 가지 주요 구성 요소로 이루어져 있습니다: Context: 사용자에게 유용한 인터페이스를 제공하고, 현재 상태를 정의하는 객체입니다. State: 모든 특정 상태의 행동을 캡슐화하는 인터페이스입니다. ConcreteState: State 인터페이스를 구현하는 서브클래스로, 특정 상태의 행동을 제공합니다. 예시 코드 다음은 C++로 작성된 간단한 상태 패턴의 예입니다: #include // State class.. 2024. 1. 29.
메멘토 패턴(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.