《设计模式之-代理模式.ppt》由会员分享,可在线阅读,更多相关《设计模式之-代理模式.ppt(11页珍藏版)》请在三一办公上搜索。
1、设计模式之,代理模式,例子为别人作嫁衣:,小王喜欢班上的一个女生娇娇,但他又不好意思亲自给娇娇说,于是小王请小张帮忙给娇娇送花,送巧克力等。,例子的实现,存在的问题:这两种情况均不符合实际情况。,问题的解决:,“小张”和“小王”的方法有相似之处,只不过“小张”送的礼物是“小王”买的。,关联关系,实现接口,具体的代码:,/公共接口类class givegift void givedolls();void giveflowers();void givechocolate();,具体的代码:,/被追求者类class schoolgirlprivate string name;public strin
2、g name get return name;set name=value;,具体的代码:,/追求者类Class pursuit:givegiftschoolgirl mm;public pursuit(schoolgirl mm)this.mm=mm;public void giveflowers()Console.WriteLinemm.name+“送你鲜花”);public void givedolls()Console.WriteLine mm.name+“送你洋娃娃”);public void givechocalate()Console.WriteLine mm.name+“送你巧
3、克力”);,/代理类Class proxy:givegiftpursuit gg;public proxy(schoolgirl mm)gg=new pursuit(mm);public void giveflowers()gg.giveflowers();public void givedolls()gg.givedolls();public void givechocalate()gg.givechocolate();,让追求者和代理类去实现接口,客户端代码:,void main()schoolgirl jiaojiao=new schoolgirl();jiaojiao.name=“娇娇”;proxy xiaozhang=new proxy(jiaojiao);xiaozhang.givedolls();xiaozhang.giveflowers();xiaozhang.givechocolate();,代理模式结构图,pursuit,proxy,givegift,总结,意图:为其它对象提供一个代理以控制对这个对象的访问。实体:subject类定义了realsubject和proxy类的公共接口,在任何使用realsubject的地方均可以使用proxy。,