zoukankan      html  css  js  c++  java
  • 设计模式复习-代理模式

    #pragma once
    #include "stdafx.h"
    #include<iostream>
    #include<windows.h>
    using namespace std;
    
    //代理模式 Proxy
    class ProxuInterface {
    
    public:
    	virtual VOID doThings1() = 0;
    	virtual VOID doThings2() = 0;
    };
    
    class DoBody : public ProxuInterface {
    public:
    	virtual VOID doThings1() {
    		cout << "dothings1" << endl;
    	}
    	virtual VOID doThings2() {
    		cout << "dothings2" << endl;
    	}
    };
    
    class DoProxy :public ProxuInterface {
    private:
    	ProxuInterface *mpDoBody = NULL;
    public:
    	DoProxy(ProxuInterface *pDoBody) {
    		mpDoBody = pDoBody;
    	}
    	~DoProxy() {
    		delete mpDoBody;
    	}
    	virtual VOID doThings1() {
    		mpDoBody->doThings1();
    	}
    	virtual VOID doThings2() {
    		mpDoBody->doThings2();
    	}
    };
    int main()
    {
    	ProxuInterface *pDo = new DoProxy(new DoBody());
    	pDo->doThings1();
    	pDo->doThings2();
    	getchar();
    	return 0;
    }
    //tip 其实上面的实现写的不是很好,尤其是在main里调用的时候
    //我既然new了 DoBody 如果真是情景是这样岂不是TLKZFP?
    //正常情况下,我们客户端只接触代理类DoProxy就好了,说白了
    //也就是DoProxy在这里就代替了DoBody,然后我们自己再在
    //DoProxy里面好好的使用DoBody
  • 相关阅读:
    java-抽象类
    java-接口
    java-面向对象总结
    java-单例设计模式
    java数组
    .Net框架整理
    PHP结合memcacheq消息队列解决并发问题
    浅谈DDos攻击
    PHP+ffmpeg+nginx的配置实现视频转码(转)
    使用Nginx的X-Accel-Redirect实现大文件下载
  • 原文地址:https://www.cnblogs.com/csnd/p/12061922.html
Copyright © 2011-2022 走看看