代理模式的使用
1. 静态代理
目标对象target 代理对象proxy
1.在使用时,需要定义接口或者父类
2.被代理对象(即目标对象)与代理对象一 起实现相同的接口或者是继承相同父类。
静态代理使用方式:
代理对象与目标对象要实现相同的接口,然后在代理方法内调用目标对象的方法。
静态代理的优缺点
优点:在不修改目标对象的功能前提下, 能通过代理对象对目标功能扩展
缺点:
1.因为代理对象需要与目标对象实现一样的接口,所以会有很多代理类
2.一旦接口增加方法,目标对象与代理对象都要维护
public class StaticBankLogService implements IService {private IService target;public StaticBankLogService(IService target) {this.target = target;}@Overridepublic void login(Long id, String pwd) {System.out.println("日志开始追踪:The Method login begin with [ id=" + id + ",pwd=" + pwd + "]");long l1 = System.currentTimeMillis();// 调用相同的目标方法target.login(id, pwd);long l2 = System.currentTimeMillis();System.out.println("日志结束追踪:The Method login end with ,耗时: " + (l2 - l1) + "ms");}@Overridepublic void register(Long id, String name, String pwd) {System.out.println("日志开始追踪:The Method register begin with [ id=" + id + ",name=" + name + ",pwd=" + pwd + "]");long l1 = System.currentTimeMillis();// 调用相同的目标方法target.register(id, name, pwd);long l2 = System.currentTimeMillis();System.out.println("日志结束追踪:The Method register end with ,耗时: " + (l2 - l1) + "ms");