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
  • 相关阅读:
    php-管理变量
    php-变量的间接引用
    php-eval()
    HTML
    php观
    笔记1
    脚本语言
    Windows Server 2012如何把快捷方式加到启动文件夹中
    VIM的笔记
    mongodb 从3.0 升级到3.2
  • 原文地址:https://www.cnblogs.com/csnd/p/12061922.html
Copyright © 2011-2022 走看看