幾個功能模組有部分程式碼是公用的,想修改其中一個功能,需要修改公用程式碼,在不確定哪些功能引用了這段程式碼的情況下,如何避免破壞其他功能
走同样的路,发现不同的人生
抽象化然後再寫多個方法來實作抽象的方法,不同的功能點實作不同的業務邏輯。
最簡單的方法。複製出來單獨引用。
比如說你要修改公共模組的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 做不同的處理
重寫多一個方法
用分類的方式來修改那個方法吧