initialize repository of design pattern template

This commit is contained in:
2025-08-09 08:41:14 +08:00
commit 1727e31b9d
32 changed files with 2149 additions and 0 deletions

33
inc/proxy.hpp Normal file
View File

@@ -0,0 +1,33 @@
#pragma once
#include "common.hpp"
class Subject // <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
public:
Subject(string name) :m_Name(name) {};
string getName();
virtual void request() = 0;
private:
string m_Name;
};
class RealSubject :public Subject // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
public:
RealSubject(string name) :Subject(name) {};
void request();
};
class ProxySubject :public Subject // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
public:
ProxySubject(string name, RealSubject* subject = nullptr) :Subject(name), m_pSubject(subject) {};
void request();
void preRequest();
void afterRequest();
private:
RealSubject* m_pSubject;
};