반응형 프로그래밍 이야기/C++ 기초26 [Design Pattern] Bridge MP3로 생각하기 다음과 같이 가상의 IPod이 있고 People은 이를 Play/Stop 할 수 있다. #include using namespace std; class IPod { public: void Play() { cout 2021. 2. 2. [DesignPattern] Facade Facade pattern에 대해 알아보자. Facade의 목적은 다음과 같다. 1. 서브 시스템을 합성하는 다수의 객체들의 인터페이스 집합에대해 일관된 하나의 인터페이스를 제공한다. 2. 서브 시스템을 사용하기 쉽게 하기 위한 포괄적 개념의 인터페이스를 제공한다. C 스타일 TCP 서버의 예 다음의 C스타일의 소스코드를 객체지향으로 변경해가면서 Facade를 적용해보자. 이 코드는 간단한 TCP 서버이다. 이러한 TCP서버를 만드는 일반적인 절차는 다음과 같다. 1. 1. N/W 라이브러리 초기화(Windows OS) 2. socket 생성(socket) 3. socket에 주소 지정(bind) 4. socket을 대기 상태로 변경(listen) 5. client의 접속을 대기(accept) 6. 접속.. 2021. 1. 19. [C++]Design Pattern - STL과 Adapter 시나리오 STL에 stack이 존재하지만 stack을 한번 만들어보자. 기존 list는 양쪽 방향으로 쓰기가 가능하다. 이 양쪽 방향 쓰기를 단방향 쓰기로 만들어준다면 stack처럼 사용할 수 있을 것이다. 또한 list의 함수 이름을 stack처럼 보이도록 변경해주면 될 것이다. #include #include #include #include using namespace std; template class Stack : public list { public: void push(const T& a) { list::push_back(a); } void pop() { list::pop_back(); } T& top() { return list::back(); } }; int main() { Stack s; .. 2020. 12. 30. [C++]Design Pattern - Adapter 구현 시나리오 다음과 같이 Rect, Circle의 구성으로 도형을 그리는 기능이 이미 구현되어있다. 그리고 도형 외에 글자를 출력할 수 있는 TextView도 준비되어 있다. #include #include #include "TextView.cpp" using namespace std; class Shape { public: virtual void Draw() { cout 2020. 12. 30. 이전 1 2 3 4 5 6 7 다음 반응형