代理模式:
使用环境无法直接使用对象A(委托对象),可以使用对象B(代理对象)调用对象A已达到直接调用对象A的效果,就成为代理模式。
其中A为委托对象,B为代理对象。
静态代理的优缺点:
优点:
1、代码只管,可以清楚理解委托雷以及代理类。
2、在编译期加入,提前就指定好了委托类,代理类,效率高。
缺点:
1、静态代理很麻烦,需要大量的代理类,不易于代码维护等
当我们有多个目标对象需要代理时,我就需要建立多个代理类,改变原有的代码,改的多了就很有可能出问题,必须要重新测试。
2、重复的代码会出现在各个角落里,代码过于冗余。
3、在编译期加入,系统的灵活性差,不易于灵活的修改
伪码如下:
/**委托类*/
Class A{
public void method1(){
system.out.println("from A method");
};
}
/**代理类*/
Class B{
A a;
public B(A a){
this.a = a;
}
void method1(){
if(null != a){
a.method1();
}
};
}
/**********/
调用过程
main(){
B b = new B(new A());
b.method1();
}
/****************************************************如有错误,忘雅正,多谢 !*************************************************************/