设计模式学习---代理类
2016-05-12 21:58
381 查看
今天继续看了代理模式,总结一下,觉得这个代理类主要是通过一个借口抽象了一些代理类和被代理类公用的方法。然后让被代理类实现这些方法。
再让被代理类通过代理类中来调用这些方法。
代码如下:PersonA表示真正追求美女的人,PersonB则是PersonA与美女的传话人,就是代理类。
输出结果:
再让被代理类通过代理类中来调用这些方法。
代码如下:PersonA表示真正追求美女的人,PersonB则是PersonA与美女的传话人,就是代理类。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 代理模式 { interface GiveGift //代理类与被代理类共有的接口 { void Gift(); } class beautifulGirl //目标类 { private string name; public string Name { get { return name; } set { name = value; } } } class PersonA : GiveGift //被代理人 { beautifulGirl MyGirl; public PersonA(beautifulGirl girl) { this.MyGirl=girl; // Console.WriteLine(MyGirl.Name); } public void Gift() { Console.WriteLine("PersonA送给{0}的礼物", this.MyGirl.Name); } } class PersonB : GiveGift //代理人类 { public PersonA realMan; public PersonB(beautifulGirl girl) { realMan = new PersonA(girl); } public void Gift() { realMan.Gift(); } } class Program { static void Main(string[] args) { beautifulGirl girl = new beautifulGirl(); girl.Name = "小雯"; PersonB Sman = new PersonB(girl); Sman.Gift(); Console.ReadKey(); } } }
输出结果:
相关文章推荐
- cnblogs.com的用户体验
- 面试-java算法题
- Sprint计划
- 这些年因为粗心造成程序的程序错误...
- html 缓存公共数据数据 银行卡校验 身份证校验
- vs2013中MSComm通讯控件的导入和注意事项
- android关于调用联系人信息的问题
- 合法括号序列判断
- 焦点轮播图的制作
- leetcode138: Copy List with Random Pointer
- 分享一个牛逼的chrome插件--Postman
- Android学习之监听软键盘的弹起关闭
- 关于树莓派上使用gstreamer的问题
- 分享一个牛逼的chrome插件--Postman
- PayPal 开发详解(三):在网站上创建【立即付款】按钮
- webservice简单了解
- java多线程-线程的实现
- 根据黑客的业务逻辑:最牛黑客的外号应该叫“向日葵”
- 把握宏观调控,加快转型升级 学习笔记
- Mysql中的LOCATE 和 SUBSTRING