84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
几个功能模块有部分代码是公用的,想修改其中一个功能,需要修改公用代码,在不确定哪些功能引用了这段代码的情况下,如何避免破坏其他功能
走同样的路,发现不同的人生
抽象出来然后再写多个方法来实现抽象的方法,不同的功能点实现不同的业务逻辑。
最简单的方法。复制出来单独引用。
比如说你要修改公共模块的A方法,这个时候还有其他模块也是用的A,你可以不修改A而是另外写一个A1方法。
可以将子类的代码把公共部分覆盖掉,你就可以任意修改其中一个的功能了
创建一个分类 在分类中重写这个方法 在这个文件中导入这个分类。
写个子类继承这个公共方法的类,需要修改的地方封装到子类里,目标模块用这个子类。
创建一个新的方法。包装别人的方法。
function pre() {} function now() { var result = pre() // todo sth // todo sth return newResult }
如果你的修改改变了原有代码的行为的话,最好还是创建一个新的如果新的代码和原有代码有很多重复的话,可以考虑把可复用的地方提取出来
两种方式:
为方法添加 flag 类型的参数,在方法中依据不同的 flag 做不同的处理
重新写多一个方法
用分类的方式来修改那个方法吧
抽象出来
然后再写多个方法来实现抽象的方法,不同的功能点实现不同的业务逻辑。
最简单的方法。复制出来单独引用。
比如说你要修改公共模块的A方法,这个时候还有其他模块也是用的A,你可以不修改A而是另外写一个A1方法。
可以将子类的代码把公共部分覆盖掉,你就可以任意修改其中一个的功能了
创建一个分类 在分类中重写这个方法 在这个文件中导入这个分类。
写个子类继承这个公共方法的类,需要修改的地方封装到子类里,目标模块用这个子类。
创建一个新的方法。包装别人的方法。
如果你的修改改变了原有代码的行为的话,最好还是创建一个新的
如果新的代码和原有代码有很多重复的话,可以考虑把可复用的地方提取出来
两种方式:
为方法添加 flag 类型的参数,在方法中依据不同的 flag 做不同的处理
重新写多一个方法
用分类的方式来修改那个方法吧