본문 바로가기

CS(Computer Science)지식/[C++] 디자인 패턴15

방문자 패턴(Visitor Pattern)이해하기 : 쉽게 설명한 디자인 패턴(C++) 방문자 패턴(Visitor Pattern)이란? 방문자 패턴은 객체 지향 디자인 패턴 중 하나로, 특정 연산을 객체의 구조에 대해 수행하도록 하는 패턴입니다. 이 패턴은 연산을 수행하려는 객체에서 분리하여 새로운 연산을 추가하거나 기존 연산을 변경하는 것을 쉽게 만들어줍니다. 이 패턴은 주로 복잡한 객체 구조에 대해 연산을 수행할 때 사용됩니다. 방문자 패턴은 다음 두 가지 주요 구성 요소로 이루어져 있습니다: Visitor: 방문자 인터페이스로, 방문할 객체의 클래스에 대한 방문 연산을 선언합니다. ConcreteVisitor: 방문자 인터페이스를 구현하고, 각 클래스에 대한 방문 연산을 정의합니다. 예시 코드 다음은 C++로 작성된 간단한 방문자 패턴의 예입니다: #include class Concr.. 2024. 1. 29.
템플릿 메서드 패턴(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.