본문 바로가기

분류 전체보기79

장식자 패턴(Decorator Pattern) 이해하기 : 쉽게 설명한 디자인 패턴(C++) 장식자 패턴은 객체의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주는 디자인 패턴입니다. 이 패턴은 기본 객체에 추가적인 기능을 덧붙이는 데 사용되며, 이를 통해 기능을 계층적으로 확장할 수 있습니다. 장식자 패턴은 객체 지향 설계 원칙 중 하나인 개방-폐쇄 원칙(OCP, Open-Closed Principle)을 따릅니다. 이 원칙은 “소프트웨어 구성요소는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다”는 원칙입니다. 이제 C++을 사용한 장식자 패턴의 예시를 살펴보겠습니다. #include #include // Component class Beverage { public: virtual ~Beverage() = default; virtual std::string getDescri.. 2024. 1. 28.
복합체 패턴(Composite Pattern) 이해하기 : 쉽게 설명한 디자인 패턴(C++) 1. 복합체 패턴이란? 복합체 패턴은 객체들의 그룹을 단일 객체처럼 다룰 수 있게 해주는 구조적 디자인 패턴입니다. 이 패턴을 사용하면, 클라이언트는 개별 객체와 복합 객체를 동일하게 취급할 수 있습니다. 2. 복합체 패턴의 구조 복합체 패턴은 다음과 같은 세 가지 주요 구성 요소로 이루어져 있습니다. Component: 모든 구성 요소에 공통인 인터페이스를 정의합니다. Leaf: 개별 객체를 나타내는 클래스입니다. Composite: 구성 요소의 그룹을 나타내는 클래스입니다. 3. 복합체 패턴의 예시 이제 C++를 사용하여 복합체 패턴을 어떻게 구현하는지 살펴보겠습니다. 여기서는 파일 시스템의 예제를 사용하겠습니다. #include #include #include // Component class Fi.. 2024. 1. 28.
기교 패턴(Bridge Pattern) 이해하기 : 쉽게 설명한 디자인 패턴(C++) 1. 기교 패턴이란? 기교 패턴은 구현부에서 추상화 부분을 분리하여 각자 독립적으로 변형할 수 있게 하는 디자인 패턴입니다. 이 패턴은 클래스의 기능과 구현을 두 개의 별도의 클래스 계층으로 분리하여 이들이 각각 독립적으로 변형될 수 있게 합니다. 2. 기교 패턴의 구조 기교 패턴은 다음과 같은 네 가지 주요 구성 요소로 이루어져 있습니다. Abstraction: 추상화를 정의하고, Implementor에 대한 인터페이스를 유지합니다. RefinedAbstraction: Abstraction 클래스를 확장하는 클래스입니다. Implementor: 구현 클래스의 인터페이스를 정의합니다. ConcreteImplementor: Implementor 인터페이스를 구현하는 클래스입니다. 3. 기교 패턴의 예시 이.. 2024. 1. 28.
적응자 패턴(Adapter Pattern) 이해하기 : 쉽게 설명한 디자인 패턴(C++) 1. 적응자 패턴이란? 적응자 패턴은 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 디자인 패턴입니다. 이 패턴을 사용하면 인터페이스가 호환되지 않아 함께 작동할 수 없는 클래스들이 함께 작동하도록 할 수 있습니다. 2. 적응자 패턴의 구조 적응자 패턴은 다음과 같은 세 가지 주요 구성 요소로 이루어져 있습니다. Target: 사용자가 기대하는 인터페이스를 정의합니다. Adaptee: 적응되어야 하는 인터페이스를 가진 클래스입니다. Adapter: Adaptee의 인터페이스를 Target 인터페이스로 적응시킵니다. 3. 적응자 패턴의 예시 이제 C++를 사용하여 적응자 패턴을 어떻게 구현하는지 살펴보겠습니다. 여기서는 라운드 핀을 가진 전원 플러그를 미국 스타일의 두 핀 플러그로 적응.. 2024. 1. 28.