代理模式是java常用的几种模式之一,所谓代理,就是委托别人去做你想做不能做的事情。比如你要买过年的票,上班忙没空去火车站排队购票,那么你会在网上买票,买票网本身是没有火车票的,它是拿着你的钱再帮你去车站买票,买票网就是代理人,而你就是被代理人,火车站被抽象出一个主题角色,而卖票被抽象为接口:
1、抽象主题角色
2、真实角色,实现抽象角色,实现买票方法
3、代理角色,实现抽象角色,把真实角色作为它的属性
好了,现在来个客户端调用:
当然代理类也可以修改方法的实现,比如卖票网收点你的手续费啊。。。
代理模式简单归为一句话:使用代理模式创建代理对象,让代理对象控制目标对象的访问(目标对象可以是远程的对象、创建开销大的对象或需要安全控制的对象),并且可以在不改变目标对象的情况下添加一些额外的功能。
动态代理:未完待续。