디자인 패턴 4
-
한 객체의 상태가 변할 때, 그 객체에 의존하는 다른 객체들이 자동으로 알림을 받아. 상태에 대한 처리를 할 수 있도록. 객체간의 결합을 낮추는 방식이다. 전역변수로 함수포인터 배열을 생성해서. 관리하는 형태를 말한다. #pragma once class Observer : public Singleton { private: friend class Singleton; Observer() = default; ~Observer() = default; public: void AddEvent(string key, Event event); void AddParamEvent(string key, ParamEvent paramEvent); void AddIntParamEvent(string key, IntParamEve..
-
객체 지향 프로그래밍에서 중요한 디자인 패턴으로, 특정 클래스가 단 하나의 인스턴스만 가지도록 보장하고, 그 인스턴스에 대한 전역적인 접근점을 제공한다. 즉, 전역변수로 선언한것과 같은 역할을 한다고 이해하면 된다. 특징 인스턴스 제한. 싱글톤 패턴은 인스턴스가 한개만 존재하도록 제한한다. 전역적인 접근점 제공 어디서든 해당 인스턴스에 접근할 수 있는 접근점을 제공한다 공유 리소스 관리 전역적 접근점을 제공함으로, 단일 인스턴스가 공유되도록 할 때 유용하다. 이러한 특징점으로. 싱글톤 패턴은 게으른 초기화(Lazy Initalization)이 가능한데, 이는 인스턴스가 필요한 시점까지 전역변수의 생성을 지연할 수 있다. 그러나, 싱글톤은 메모리를 할당할 때 메모리공간에 저장되는데 이것이 한정적이라 싱글톤..
-
빌더패턴은 객체를 생성하는 과정을 캡슐화 하고, 객체 생성 과정의 다양한 단계에서 서로 다른 구현을 지원하는 디자인 패턴이다. 빌더패턴은 복잡한 객체를 생성하는 과정을 단순화 하고 유연성을 높여 객체를 생성하는 과정을 다양한 방법으로 구성할 수 있도록 한다. 이러한 빌더 패턴을 사용하는 이유는, 객체 생성 과정이 복잡해진다면 코드가 난잡해지기 때문에, 이러한 객체 생성과정을 더 간소화 하기 위해서 만든다. 예를들어, 객체 생성과정이 복잡할 때, 생성자를 사용하면 생성자의 매개변수가 많아지게 되어 필요없는 함수의 호출이 많아질 수 있고, 이를 관리하기도 어렵다. 또한, 생성자 오버로딩을 사용하여 매개변수 수를 줄이려고 하면 다양한 객체 생성방식을 적용하기 어려워진다. 이러한 문제점을 해결하기 위해 빌더 패..
-
추상 팩토리 패턴( Abstract Factory Pattern ) 은 객체 생성을 추상화하는 디자인 패턴 중 하나로, 서로 관련된 객체의 집합을 생성하기 위한 인터페이스를 제공한다. 이 패턴은 추상화된 팩토리 클래스를 통해 관련된 객체를 생성하며, 각 객체는 추상 클래스나 인터페이스를 상속받아 구현된다. 이를 통해 클라이언트 코드는 실제 객체의 클래스에 대한 정보를 알 필요 없이 추상화된 인터페이스를 통해 객체를 생성할 수 있는 특징이 있다. 장점 유지보수성과 확장성이 높아진다. 클라이언트 코드와 객체 생성코드를 분리하기 때문에 유지보수가 쉬워지고 확장할때 편하다. 코드 의존성을 낮춘다. 코드 자체를 실제로 추가할 일이 크지 않을 수 있기 때문에, 어떠한 항목에 대하여 자세한 코드를 작성하지 않아도 되..