您的位置:首页 > 其它

设计模式学习---代理类

2016-05-12 21:58 381 查看
今天继续看了代理模式,总结一下,觉得这个代理类主要是通过一个借口抽象了一些代理类和被代理类公用的方法。然后让被代理类实现这些方法。

再让被代理类通过代理类中来调用这些方法。

代码如下: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();
}
}
}


输出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: