java之静态代理

来源:互联网 发布:魔兽世界mac版 编辑:程序博客网 时间:2024/05/29 18:06

接口类

package proxy;public interface People {public void study();}

代理类和被代理类

package proxy;/** * 被代理的类 * @author lenovo * */public class Student implements People{@Overridepublic void study(){System.out.println("学习");}//测试静态代理public static void main(String[] args) {Student st = new Student();new StaticProxy(st).study();}//运行结果/** * doSomething before..      学习   doSomething after.. */}/** * 静态代理类 * @author lenovo * */class StaticProxy implements People{private Student student;public StaticProxy(Student student) {super();this.student = student;}@Overridepublic void study() {doSomethingBefore();this.student.study();doSomethingAfter();}private void doSomethingBefore(){System.out.println("doSomething before..");}private void doSomethingAfter(){System.out.println("doSomething after..");}}

总结:

静态代理的好处:

1)客户端和被代理对象之间的桥梁。

2)无侵入增强业务代码,解耦利器。

3)增强点多样化(业务前、后、异常)。
静态代理的局限:

1)扩展能力差,横向扩展、纵向扩展。

2)可维护差

实现:

代理类必须包含被代理类且代理类和被代理类同时实现一个接口。


原创粉丝点击