静态代理设计模式
静态代理设计模式的优缺点
优点:可以实现不对目标对象进行修改的前提下,对目标对象进行功能的扩展和增强,也就是扩展原功能,不污染源代码。
缺点:因为代理对象,需要实现与目标对象一样的接口,如果目标接口类繁多,也会导致代理类繁多,同时一旦接口增加方法,则目标对象和代理类都需要维护
实现例子:
TargetClass
public interface TargetClass {
public void sayHi();
public void sayHello();
}
TargetImpl
public class TargetImpl implements TargetClass02 {
public void sayHi() {
System.out.println("HI");
}
public void sayHello() {
System.out.println("Hello"); }}
StaticProxy
public class StaticProxy implements TargetClass {
private TargetClass targetClass;
public StaticProxy(TargetClass targetClass) {
this.targetClass = targetClass;
}
public void sayHi() {
System.out.println("sayHi()方法执行前的一句话");
targetClass.sayHi();
System.out.println("sayHi()方法执行后的一句话");
}
public void sayHello() {
System.out.println("sayHello()方法执行前");
targetClass.sayHello();
System.out.println("sayHello()方法执行后");
}
}
Test01
public class Test01 {
public static void main(String[] args) {
StaticProxy proxy=new StaticProxy(new TargetImpl());
proxy.sayHello();
proxy.sayHi();
}}