开发设计模式(四) 代理模式(Proxy Pattern)
2013-10-12 10:10
330 查看
转自http://blog.sina.com.cn/s/blog_89d90b7c0101803g.html
代理模式:代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信。
应用场景:例如:假设有一组对象都实现同一个接口,实现同样的方法,但这组对象中有一部分对象需要有单独的方法,传统的笨办法是在每一个应用端都加上这个单独的方法,但是代码重用性低,耦合性高。如果用代理的方法则很好的解决了这个问题,
其实从字面解释会更加容易,很容易就想到代理商:货物的所有权属于厂家,而代理商只是帮助厂家进行一些销售行为等,当然也可以有自己的行为,比如下面的例子中,商家就可以单独的去给商品做销售活动,而跟厂家没有直接关系。
总结一下,代理模式主要是用了面对对象的多态性。对于某种共同的行为,代理类是接活,幕后主使人是被代理类,完成人家分配的任务就会有好的报酬,可以知道,他们是同穿一条裤子,你能做啥我能做啥都清楚的很,因为有同一个行为接口。O(∩_∩)O
代理模式:代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信。
应用场景:例如:假设有一组对象都实现同一个接口,实现同样的方法,但这组对象中有一部分对象需要有单独的方法,传统的笨办法是在每一个应用端都加上这个单独的方法,但是代码重用性低,耦合性高。如果用代理的方法则很好的解决了这个问题,
其实从字面解释会更加容易,很容易就想到代理商:货物的所有权属于厂家,而代理商只是帮助厂家进行一些销售行为等,当然也可以有自己的行为,比如下面的例子中,商家就可以单独的去给商品做销售活动,而跟厂家没有直接关系。
using UnityEngine; using System.Collections; // 定义一个商品行为接口 // interface Goods { // 定价 // void Pricing(); // 销售 // void Sale(); } // 然后定义厂家 // class AFactory : Goods { public void Pricing() { Debug.Log("厂家给商品定价啦.................."); } public void Sale() { Debug.Log("我去,厂家直销啊,这得多便宜啊..................."); } } // 再来定义商家,嗯 就是代理商 // class Shops : Goods { // 定义一个商品接口 // private Goods goods; // 构造方法,传人带有商品行为接口的类 // public Shops(Goods goods) { this.goods = goods; } public void Pricing() { Debug.Log("商家使用厂家的定价,当然商家也可以在一定范围内调价,比如下面的方法可以留出参数.................."); this.goods.Pricing(); } public void Sale() { Debug.Log("商家开始销售啦,俺帮厂家销售,自己还得钱,真爽...................."); this.goods.Sale(); } } // 欧也,下面代理商就可以开始工作了 // public class Proxy : MonoBehaviour { void Start() { Shops shops = new Shops(new AFactory()); shops.Pricing(); shops.Sale(); } }
总结一下,代理模式主要是用了面对对象的多态性。对于某种共同的行为,代理类是接活,幕后主使人是被代理类,完成人家分配的任务就会有好的报酬,可以知道,他们是同穿一条裤子,你能做啥我能做啥都清楚的很,因为有同一个行为接口。O(∩_∩)O
相关文章推荐
- 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)
- 【编程素质】设计模式-代理模式(委托模式、Proxy Pattern):动态扩充对象功能
- 设计模式学习笔记十六:代理模式(Proxy Pattern)
- Java开发-Java中代理设计模式的实现
- 如何让孩子爱上设计模式 ——13.代理模式(Proxy Pattern)
- 5.3 iOS开发视频教程—协议和代理设计模式
- Java开发中的23种设计模式之八:代理模式(Proxy)
- 设计模式之代理模式(Proxy Pattern)_远程代理解析
- 设计模式(18):代理模式 Proxy Pattern
- Android开发中无处不在的设计模式——动态代理模式
- Android开发中无处不在的设计模式——动态代理模式
- 设计模式之五:代理模式(Proxy Pattern)
- 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)
- Java设计代理模式之代理模式(Proxy Pattern)
- 设计模式原来如此-代理模式(Proxy Pattern)
- 24种设计模式--代理模式【Proxy Pattern】
- java设计模式-代理模式(Proxy Pattern)
- 设计模式笔记15:代理模式(Proxy Pattern)
- 5.4 iOS开发视频教程—OC中代理设计模式
- 设计模式-代理模式(proxy pattern)