如何不修改原来的代码呢?

一.概述

    今天遇到这样一个需求,修改一个系统中的一段逻辑,但是涉及到10类都要修改,并且修改的逻辑一模一样,也就是说需要在这10个类的某个方法上都加上一段相同的代码,为了下面描述方便,我们暂时把这段代码命名为CODEA,很正常的思路我们想到了AOP,但是CODEA有个特殊的地方,当CODEA在某种场景下面执行的时候,执行完后,方法需要立即返回,其实就是所谓的MOCK思想,显然AOP是做不到,AOP能够在方法执行的时候增加一些横切逻辑,但是这些横切逻辑是没法阻止原来方法执行的,因此AOP在这里行不通。

二.解决方法

    上面的问题再抽象一下,就是说在某种条件下,把某个方法给替换了,因此我们直接使用MethodReplacer即可。在一个问题暂时想不清楚的时候,最好把问题再抽象一下,或许你就会有意外的发现。

猜你喜欢

转载自bolinyang.iteye.com/blog/2033776