Table of Contents
디자인 패턴은 일반적인 프로그래밍 문제에 입증 된 솔루션입니다. C++에서, 그들은 코드 조직, 재사용성 및 유지성을 개선하는 데 도움이됩니다. 이 문서는 인기있는 디자인 패턴의 실제 예를 탐구하고 실제 문제를 해결하기 위해 적용 할 수있는 방법을 탐구합니다.
Singleton 패턴
Singleton 패턴은 클래스가 하나의 인스턴스를 가지고 있으며, 이를 위한 글로벌 액세스 포인트를 제공합니다. 구성 설정 또는 로깅 시스템과 같은 공유 리소스를 관리하는 데 유용합니다.
예시 구현:
코드:
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
공장 방법 본
공장 방법 패턴은 개체를 생성하기위한 인터페이스를 정의하지만 하위 클래스를 생성 할 객체의 유형을 변경할 수 있습니다. 그것은 느슨한 커플 링과 확장성을 촉진합니다.
예제 시나리오 : 다른 유형의 문서를 작성합니다.
코드:
는 'cpp class Document { public: virtual void create() = 0; virtual ~Document() {} }; class PDFDocument : public Document { public: void create() override { // PDF document }; class WordDocument : public Document { public: void create() override { // Word document } } }; class {Factory public: virtual std::unique ptr createDocument() = 0; class WordDocument : public Document {: void create() override { { { { // Create Word document} {; class document} {; class { }; class {
관찰자 패턴
Observer 패턴은 객체간의 1대 의존성을 설정하여, 모든 종속은 자동으로 표기됩니다. 이 기능은 이벤트 처리 시스템 구현에 유용합니다.
예: 여러 관찰자가 변경에 응답하는 간단한 이벤트 시스템.
코드:
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .