我有兩種方法meth1和meth2. meth1接受一個 set 的輸入set1,回傳一個值,并修改set1.
現在meth2使用它set1來計算另一個回傳值。
我在這段代碼中看到的問題是設定修改是隱式的,不夠細心的編碼人員會錯過。
我可以在一個方法中完成所有操作,但是這兩種方法的作業方式不同,足以將它們放在不同的方法中。單一方法也會很長。
因此,鑒于我必須在這里使用兩種方法,避免隱式修改的最佳方法是什么?處理這種情況的最佳做法是什么?
任何指標都受到高度贊賞。
方法簽名:
meth1:
private List<CustomObject> meth1(List<CustomObjectOnWhichOperationIsPerformed> lst,
Set<AnotherCustomObject> set1, Map<String, AnotherCustomObject> mp) {
// Iterate on lst, call mp and remove AnotherCustomObject entities from set1
}
meth2:
private List<CustomObject> meth2(Set<AnotherCustomObject> set1) {
// Iterate on set1 to create the list
}
uj5u.com熱心網友回復:
能否以不同的方式解決這個問題?看起來違反了單一職責原則。第一個方法回傳一個值,但也會修改傳遞給它的引數。
將第一種方法分解為兩種方法
- 修改集合(顯式)
- 處理獲取第一個回傳值的邏輯
然后最后一步
- 計算另一個回傳值
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/380220.html
上一篇:無論如何要洗掉C#類屬性的重復?
