【从零开始学习--设计模式--代理模式】

返回首页

前言

感谢各位同学的关注与支持,我会一直更新此专题,竭尽所能整理出更为详细的内容分享给大家,但碍于时间及精力有限,代码分享较少,后续会把所有代码示例整理到github,敬请期待。

此章节介绍建代理模式。


1、代理模式

代理模式,一个类代表另一个类的功能。

在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。

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

1.1、UML图

【从零开始学习--设计模式--代理模式】_第1张图片
【从零开始学习--设计模式--代理模式】_第2张图片

1.2、示例代码

// 版本一(卓贾易直接追求娇娇):未使用代理
//V1.SchoolGirl mm = new V1.SchoolGirl();
//mm.Name = "娇娇";
//V1.Pursuit zjy = new V1.Pursuit(mm);
//Console.WriteLine("我是追求者卓贾易");
//zjy.GiveDolls();
//zjy.GiveFlowers();
//zjy.GiveChocolate();
//Console.ReadKey();

// 版本二(戴笠代理卓贾易追求娇娇):使用代理戴笠
//V2.SchoolGirl mm = new V2.SchoolGirl();
//mm.Name = "娇娇";
//V2.Proxy dl = new V2.Proxy(mm);
//Console.WriteLine("我是代理者戴笠");
//dl.GiveDolls();
//dl.GiveFlowers();
//dl.GiveChocolate();
//Console.ReadKey();

// 版本三(追求者卓贾易通过代理戴笠送给娇娇礼物):使用代理模式
V3_Proxy.SchoolGirl mm = new V3_Proxy.SchoolGirl();
mm.Name = "娇娇";
V3_Proxy.Proxy dl = new V3_Proxy.Proxy(mm);
Console.WriteLine("我是送礼物的代理者戴笠,但礼物是追求者卓贾易买的");
dl.GiveDolls();
dl.GiveFlowers();
dl.GiveChocolate();
Console.ReadKey();

你可能感兴趣的:(设计模式,学习,设计模式,代理模式)