본문 바로가기

CS 전공지식 정리/디자인 패턴4

[디자인 패턴] 옵저버 패턴(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.
[디자인 패턴] 싱글톤 패턴(Singleton Pattern) 디자인 패턴이란? - 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것 1. 싱글톤 패턴 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 보통 데이터베이스 연결 모듈에 많이 사용 장점 메모리 절약 - 한 번 생성된 인스턴스가 계속 재사용되므로 메모리 절약 가능 2. 데이터 공유가 쉬움 - 전역으로 사용하는 인스턴스이기 때문에 다른 여러 클래스에서 데이터를 공유하며 사용 가능 3. 제어된 리소스 접근 가능 - 싱글톤 객체는 한 번에 하나의 요청만 처리하므로, 데이터베이스 연결이나 파일 작성과 같은 리소스를 안전하게 제어가 가능 단점 1. TDD(Test Driven Development)가 불리 - 싱글톤 객체는 사실상.. 2023. 6. 23.