概念什么的就不整了,直接上例子:
四个类:
A类:要被实现的接口
X类:实现A接口
Y类:代理实现类
Test类:测试
1.接口类A(目标类)`
`
public interface A {
public void say();
}
2.X类实现了A接口
public class X implements A{
public void say() {
System.out.println("X类实现了A接口");
}
}
3.Y类(代理)
public class Y implements A{
private X x;
public Y(X x) {
this.x = x;
}
//重写X类中的方法
public void say() {
//所谓的代理就是不但和你功能一样,还比你功能多,气不气
System.out.println("比你多一个功能嗷");
x.say();
System.out.println("没想到吧,我又多一个功能嗷");
}
}
4.Test
public class Test {
public static void main(String[] args) {
X x = new X();
Y y = new Y(x);
x.say();
y.say();
}
}
结果:
一个小例子,希望能帮助大家更深入理解到这个模式。
了解了基本代理模式后,就会想如果好多类需要代理,难道要每个类都去写一个代理,那样岂不是很浪费精力,还会造成代码的臃肿,动态代理的概念就由此而生。