代理模式:
1、定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
2、通俗来讲,代理模式顾名思义就是代理的意思,就像我们买火车票,可以通过携程等app平台中介来购买,或者同学代买等,但最后火车票还是你自己的。就是可以通过自己也可以通过代理,两种方式来购票。
3、代理模式组成:
(1)抽象角色:通过接口或抽象类声明真实角色实现的业务方法。
(2)代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。
(3)真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。
4、代理的优点:
(1)职责清晰,真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。叫你去买票,我管你有没有摔跤撒的,不需要关注这种问题。
(2)代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了中介的作用和保护了目标对象的作用。别人在路上一看,以为是你同学要买票去哪里,实际上买的是你的,保护了你。
(3)高扩展性,只要符合火车站规定的人,同学都可以去代人买票。