【概念】
为另一个对象,提供一个替身或占位符,以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。
提供其他对象一个代理或占位符,来控制该对象的访问权限。
【为什么要代理模式】
1.数据和业务逻辑隔开。例如:写好数据库操作类,然后用代理类去执行数据库操作类,这样,在需要数据的地方,调用代理类,间接操作
数据库操作类,达到数据和业务逻辑完全隔离的效果。
【UML图】
【生活小例子帮助理解】
过年加班比较忙,没空去买火车票,这时可以打个电话到附近的票务中心,叫他们帮你买张回家的火车票,当然这会附加额外的劳务费。
但要清楚票务中心自己并不卖票,只有火车站才真正卖票,票务中心卖给你的票其实是通过火车站实现的。这点很重要!
上面这个例子,你就是“客户”,票务中心就是“代理角色”,火车站是“真实角色”,卖票称为“抽象角色”!
【代理模式Demo】
http://download.csdn.net/detail/zgxzgxzg/8946151