一、代理模式
(1) 简介
代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式,即通过代理对象进行访问目标对象,这样做的好处是可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.
举个例子来说明代理的作用,假设你准备结婚,这就需要联系婚庆公司,包办各种酒席啥的,来达到结婚这样一个目的,那么在这里,结婚就是一个目标对象,其他琐碎的事情交给婚庆公司来解决,这就是代理思想在现实中的应用。
代理模式的关键点是:代理对象与目标对象.代理对象是对目标对象的扩展,并会调用目标对象
(2)使用场景
当不想直接访问某个对象的时候,就可以通过代理
-
不想买午餐,同事帮忙带
-
买车不用去厂里,去4s店
-
去代理点买火车票,不用去车站
二、实现三种代理模式
(1)静态代理
1、如何使用?
静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类.
下面举个例子进行说明
还是上面那个结婚的例子,定义一个 结婚的接口Marry,然后让目标对象(You)实现这个接口的方法,然后再让代理对象(WeddingCompany)也实现这个接口,最后调用的时候通过调用代理对象的方法来实现目标对象的方法
示例代码:
接口 Marry.java
public interface Marry{
void marry();
}
目标对象 You.java
public class You implements Marry{
@Override
public voi