代理模式

为其它对象提供一种代理以控制对这个对象的访问


接口 共通:

#ifndef SUBJECT_H_

#define SUBJECT_H_

class Subject

{

virtual void request(){};

};

#endif /* SUBJECT_H_ */


RealSubject 真实追求者;

.h:

#ifndef REALSUBJECT_H_

#define REALSUBJECT_H_

#include  "Subject.h"

class RealSubject : Subject

{

public:

RealSubject();

~RealSubject();

void request();

};

#endif /* REALSUBJECT_H_ */

.cpp

#include#include "RealSubject.h"

using namespace std;

void RealSubject::request()

{

cout<<"真实的请求"<

RealSubject::RealSubject()

{

}

RealSubject::~RealSubject()

{

}


proxy 代理 追求者:俗称代理类

.h

#ifndef PROXT_H_

#define PROXT_H_

#include "Subject.h"

#include "Proxt.h"

#include  "RealSubject.h"

class Proxy : Subject

{

public:

Proxy();

~Proxy();

RealSubject * reqlSubject;

void request();

};

#endif /* PROXT_H_ */


.cpp

#include#include "Proxt.h"

using namespace std;

Proxy::Proxy()

{

}

Proxy::~Proxy()

{

}

void Proxy::request()

{

    reqlSubject = new RealSubject();

reqlSubject->request(); //空指针调用方法会crash

}

int main()

{

Proxy *p = new Proxy();

p->request();

}

你可能感兴趣的:(代理模式)