본문 바로가기

CS(Computer Science)지식71

퍼사드 패턴 (Facade Pattern) 이해하기 : 쉽게 설명한 디자인 패턴(C++) 안녕하세요, 오늘은 소프트웨어 디자인 패턴 중 하나인 퍼사드 패턴(Facade Pattern)에 대해서 알아보겠습니다. '퍼사드'라는 단어는 프랑스어로 '건물의 정면'을 의미하는 단어로, 이를 소프트웨어 세계에 적용하면, '시스템의 정면 인터페이스'라는 뜻을 가집니다. 퍼사드 패턴은 복잡한 시스템을 간단하게 만드는 패턴으로, 외부에서 보기에는 단순하게 보이지만 내부적으로는 복잡한 작업을 수행할 수 있게끔 해줍니다. 퍼사드 패턴이란? 퍼사드 패턴은 복잡한 시스템의 인터페이스를 간단화시키는 구조적 디자인 패턴입니다. 이 패턴은 클라이언트와 복잡한 시스템 사이에 간단한 인터페이스를 제공하여, 시스템의 사용을 용이하게 합니다. 이 패턴을 사용하면 시스템의 복잡성을 감추고, 사용자 친화적인 인터페이스를 제공할 수.. 2024. 1. 29.
장식자 패턴(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.