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
  • 相关阅读:
    mybatis2入门程序
    mybatis1
    mybeats与jdbc问题分析
    mysqljdbc简单连接释放
    jdbc问题记录
    section,article,div
    HB调试前端开发移动
    HTML,XML,XHTML
    访问地图
    OAuth
  • 原文地址:https://www.cnblogs.com/csnd/p/12061922.html
Copyright © 2011-2022 走看看