1、基本概念
官方术语:代理模式就是找一个代理类替原对象进行操作。
意义:如果在使用的时候需要对原有的方法进行改进,可以采用一个代理类调用原有方法,并对生产结果进行控制,这种就是代理模式。
与装饰模式的区别:装饰模式需要把原对象(需要被装饰的对象)传给装饰对象的构造器,而代理模式是在代理类里创建了一个被代理的对象。
代理模式关注一个对象动态添加方法,代理模式关注于控制对对象的访问。
2、具体实现
「接口」
public interface Sourceable{
void method();
}
「实现类」需要被代理的对象
public class Source implements Sourceable{
@Override
public void method() {
System.out.println("火影忍者...");
}
}
「代理类」代理需要被代理的对象
public class Proxy implements Sourceable{
private Source source;
public Proxy(){
source = new Source();
}
@Override
public void method() {
source.method();
System.out.println("海贼王...");
}
}
「测试类」
public class SourceableTest{
public static void main(String[] args){
Sourceable sourceable = new Proxy();
sourceable.method();
}
}