设计模式例程

This commit is contained in:
2025-06-02 13:57:29 +08:00
commit 22124bb827
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;
};