这样,我们如果要在所有的Business类中的方法都添加Log,我们就在BusinessProxy代理类中添加对应的方法去包装。既不破坏原有逻辑,又可以实现前后日志的功能。
当然,我们可以有更优雅的实现方式:
我们可以定义代理类,继承自业务类。将业务类中的方法定义为虚方法。那么我们可以重写父类的方法并且在加入日志以后再调用父类的原方法。
当然,我们还有更加优雅的实现方式:
我们可以使用发射的技术,写一个通用的Invoke方法,所有的方法都可以通过该方法调用。
我们这样便实现了一个静态代理。
那我们既然有了静态代理,为什么又要有动态代理呢?













