(C#)代理模式
1.代理模式
为其他对象提供代理以控制对这个对象的访问。
- 远程代理:为一个对象在不同的地址空间提供举报代表。这样可以隐藏一个对象在不同地址空间的事实。
- 虚拟代理:是依据需要创建开销很大的对象。通过它来存放实例化需要长时间的真是对象。
- 安全代理:用来控制真实对象的访问时的权限。
- 智能代理:指当调用真实对象时,代理处理另外一些事。
2.实例
namespace 代理模式 { class Program { static void Main(string[] args) { GirlMM mm = new GirlMM(); mm.Name = "夏花"; Proxy proxy = new Proxy(mm); proxy.GiveDolls(); proxy.GiveFlowers(); proxy.GiveChocolate(); Console.ReadLine(); } } /// <summary> /// 被代理对象执行的操作接口 /// </summary> interface IGiveGift { void GiveDolls(); void GiveFlowers(); void GiveChocolate(); } /// <summary> /// 被代理者希望代理执行操作的类 /// </summary> class GirlMM { private string name; public string Name { get { return name; } set {name = value;} } } /// <summary> /// 被代理者 /// </summary> class Pursuit: IGiveGift { GirlMM mm; public Pursuit(GirlMM mm) { this.mm = mm; } public void GiveDolls() { Console.WriteLine(mm.Name+"送你洋娃娃"); } public void GiveFlowers() { Console.WriteLine(mm.Name + "送你鲜花"); } public void GiveChocolate() { Console.WriteLine(mm.Name + "送你巧克力"); } } class Proxy:IGiveGift { Pursuit gg; public Proxy(GirlMM mm) { gg = new Pursuit(mm); } public void GiveDolls() { gg.GiveDolls(); } public void GiveFlowers() { gg.GiveFlowers(); } public void GiveChocolate() { gg.GiveChocolate(); } } }
点赞鼓励下,(づ ̄3 ̄)づ╭❤~
作者:世纪末的魔术师
出处:https://www.cnblogs.com/Firepad-magic/
Unity最受欢迎插件推荐:点击查看
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。