본문 바로가기

디자인 패턴3

[디자인 패턴] 옵저버 패턴(Observer Pattern) 1. 옵저버 패턴(Observer Pattern) 한 객체의 상태가 변경될 때마다 그 객체에 의존하는 다른 객체들에게 알림을 보내는 디자인 패턴 #include #include using namespace std; class Observer { public: virtual void update(float temperture, float humidity) = 0; }; class WeatherStation { private: vector observers; float temperture; float humidity; public: void addObserver(Observer* observer) { observers.push_back(observer); } void removeObserver(Observe.. 2023. 10. 22.
[디자인 패턴] 전략 패턴(Strategy Pattern) 1. 전략 패턴(Strategy Pattern)이란? 객체의 행위를 바꾸고 싶을 때, '직접' 수정이 아닌 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능한 패턴 #include using namespace std; // Strategy Interface class Strategy { public: virtual int doOperation(int num1, int num2) = 0; }; // Concrete Strategies class Add : public Strategy { public: int doOperation(int num1, int num2) override { return num1 + num2; } }; class Subtract : public .. 2023. 10. 22.
[디자인 패턴] 팩토리 패턴(Factory Pattern) 1. 팩토리 패턴(Factory Pattern)이란? 객체를 생성하는 클래스를 따로 두는 디자인 패턴(Simple Factory Pattern) #include #include using namespace std; class Animal { public: virtual void makeSound() = 0; }; class Dog : public Animal { public: void makeSound() override { cout 2023. 10. 22.