欢迎来到天天文库
浏览记录
ID:38677198
大小:554.81 KB
页数:11页
时间:2019-06-17
《设计模式之--代理模式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、设计模式之--代理模式例子--为别人作嫁衣:小王喜欢班上的一个女生娇娇,但他又不好意思亲自给娇娇说,于是小王请小张帮忙给娇娇送花,送巧克力等。例子的实现追求者+送鲜花()+送巧克力()+送洋娃娃()被追求者姓名:string代理+送鲜花()+送巧克力()+送洋娃娃()被追求者姓名:string存在的问题:这两种情况均不符合实际情况。问题的解决:“小张”和“小王”的方法有相似之处,只不过“小张”送的礼物是“小王”买的。关联关系实现接口具体的代码://公共接口类classgivegift{voidgivedolls();voidgiveflowers
2、();voidgivechocolate();}具体的代码://被追求者类classschoolgirl{privatestringname;publicstringname{get{returnname;}set{name=value;}}}具体的代码://追求者类Classpursuit:givegift{schoolgirlmm;publicpursuit(schoolgirlmm){this.mm=mm;}publicvoidgiveflowers(){Console.WriteLine<3、oidgivedolls(){Console.WriteLine<4、publicvoidgivechocalate(){gg.givechocolate();}}让追求者和代理类去实现接口客户端代码:voidmain(){schoolgirljiaojiao=newschoolgirl();jiaojiao.name=“娇娇”;proxyxiaozhang=newproxy(jiaojiao);xiaozhang.givedolls();xiaozhang.giveflowers();xiaozhang.givechocolate();}代理模式结构图pursuitproxygivegift总结意图:为其它对象提5、供一个代理以控制对这个对象的访问。实体:subject类定义了realsubject和proxy类的公共接口,在任何使用realsubject的地方均可以使用proxy。
3、oidgivedolls(){Console.WriteLine<4、publicvoidgivechocalate(){gg.givechocolate();}}让追求者和代理类去实现接口客户端代码:voidmain(){schoolgirljiaojiao=newschoolgirl();jiaojiao.name=“娇娇”;proxyxiaozhang=newproxy(jiaojiao);xiaozhang.givedolls();xiaozhang.giveflowers();xiaozhang.givechocolate();}代理模式结构图pursuitproxygivegift总结意图:为其它对象提5、供一个代理以控制对这个对象的访问。实体:subject类定义了realsubject和proxy类的公共接口,在任何使用realsubject的地方均可以使用proxy。
4、publicvoidgivechocalate(){gg.givechocolate();}}让追求者和代理类去实现接口客户端代码:voidmain(){schoolgirljiaojiao=newschoolgirl();jiaojiao.name=“娇娇”;proxyxiaozhang=newproxy(jiaojiao);xiaozhang.givedolls();xiaozhang.giveflowers();xiaozhang.givechocolate();}代理模式结构图pursuitproxygivegift总结意图:为其它对象提
5、供一个代理以控制对这个对象的访问。实体:subject类定义了realsubject和proxy类的公共接口,在任何使用realsubject的地方均可以使用proxy。
此文档下载收益归作者所有