码迷,mamicode.com
首页 > 其他好文 > 详细

代理模式

时间:2015-06-08 19:07:48      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:

为其他对象提供一种代理以控制对这个对象的访问。

下面的列子是学校代理追求女孩送礼物的是过程:

一、女孩

 1     /// <summary>
 2     /// 被追求
 3     /// </summary>
 4     public class SchoolGirl
 5     {
 6         private string name;
 7         public string Name
 8         {
 9             get { return name; }
10             set { name = value; }
11         }
12     }

二、代理基类

1     public abstract class GiveGift
2     {
3         public abstract void GiveFlower();
4     }

三、追求者

 1     /// <summary>
 2     /// 追求-发起方
 3     /// </summary>
 4     public class Pursuit : GiveGift
 5     {
 6         SchoolGirl mm;
 7         public Pursuit(SchoolGirl mm)
 8         {
 9             this.mm = mm;
10         }
11 
12         public override void GiveFlower()
13         {
14             Console.WriteLine(mm.Name + "这是送给你的!");
15         }
16     }

四、代理者

 1     /// <summary>
 2     /// 代理类 第三者
 3     /// </summary>
 4     public class Proxy : GiveGift
 5     {
 6         Pursuit p;
 7         public Proxy(SchoolGirl mm)
 8         {
 9             this.p = new Pursuit(mm);
10         }
11         public override void GiveFlower()
12         {
13             p.GiveFlower();
14         }
15     }

五、执行

 1     /// <summary>
 2     /// 代理模式 - 为其他对象提供一种代理以控制对这个对象的访问。代理类,可以替换功能类。里氏代换原则!
 3     /// </summary>
 4     public class DoProxy : DesignPattern
 5     {
 6         public override void ExeFun()
 7         {
 8             SchoolGirl jiaojiao = new SchoolGirl() { Name = "娇娇" };
 9             Proxy daili = new Proxy(jiaojiao);
10             daili.GiveFlower();
11         }
12     }

 

代理模式

标签:

原文地址:http://www.cnblogs.com/pasture-code/p/4561278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!