首页 > 代码库 > 代理模式(Proxy)
代理模式(Proxy)
参考资料《大话设计模式》
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ds_proxy { class Program { static void Main(string[] args) { try { GiveGift daili = new Proxy(); daili.GiveDolls(); daili.GiveFollow(); daili.GiveChocolate(); } catch (Exception e) { Console.WriteLine(e.Message); } } } interface GiveGift { void GiveDolls(); void GiveFollow(); void GiveChocolate(); } /// <summary> /// 代理可以控制客户对实体类的访问 /// </summary> class Proxy : GiveGift { Pursuit gg=new Pursuit(); public void GiveDolls() { gg.GiveDolls(); } public void GiveFollow() { gg.GiveFollow(); } public void GiveChocolate() { Console.WriteLine("代理:不能访问实体类的GiveChocolate()"); //gg.GiveChocolate(); } } /// <summary> /// 实体类 /// </summary> class Pursuit : GiveGift { public void GiveDolls() { Console.WriteLine("mm.Name + :送你洋娃娃!"); } public void GiveFollow() { Console.WriteLine("mm.Name + :送你鲜花!"); } public void GiveChocolate() { Console.WriteLine("mm.Name + :送你巧克力!"); } } }
1.实体类,代理类实现同一个接口,客户类访问代理类,代理类实现实体类的全部或部分功能;
2.代理类可以控制客户对实体类的访问权限。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。