首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

【设计方式】为别人做嫁衣 - 代理模式

2012-06-23 
【设计模式】为别人做嫁衣 --- 代理模式一,概述定义:代理模式(Proxy)为另一个对象提供一个替身或占位符以控

【设计模式】为别人做嫁衣 --- 代理模式

一,概述

        定义:代理模式(Proxy)为另一个对象提供一个替身或占位符以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。

          作用:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。#include <iostream> class SchoolGirl //要追的女孩 {public:void SetName(std::string str)//名字 {m_Name = str;};std::string GetName(void) //获取女孩名字 {return m_Name;};private:std::string m_Name;};class Pursuit//追求行为类 {public:Pursuit(SchoolGirl* mm){m_mm = mm;};void GiveDolls(){std::cout << m_mm->GetName() << "送你洋娃娃" << std::endl;};void GiveFlower(){std::cout << m_mm->GetName() << "送你鲜花" << std::endl;};void GiveChocolate(){std::cout << m_mm->GetName() << "送你巧克力" << std::endl;};private:SchoolGirl* m_mm;};int main(){SchoolGirl* jiaojiao = new SchoolGirl();//初始化要追求的对象 jiaojiao->SetName("李娇娇");//事实上娇娇并不认识卓贾易Pursuit* zhuojiayi = new Pursuit(jiaojiao);zhuojiayi->GiveChocolate();zhuojiayi->GiveDolls();zhuojiayi->GiveFlower();delete jiaojiao;delete zhuojiayi;return 0;}


               2)小菜代理第二版

                  缺点:也不是让戴励自己亲自追求,不符合题意。

 

 

                   3)小菜第三版

                    改进:添加接口,让一个对象实现接口,代理负责运用接口。

                    实现:代理同样实现接口,只是代理实现接口的时候实际上是调用实际实现者的方法。

 


 

三,代理模式的经典模板

 

     


 

 


 

热点排行