事情是這樣的:重構這個代碼性能
大會(A):
private void MoveItems(someCollection)
{
// more code....
foreach(item x in someCollection)
{
int x = getXFoo();
assemblyB.UpdateOrderView(x)
}
//more code....
}
大會(B):
private void UpdateOrderView(x)
{
// more code....
int y = this.ListCount();
//......
FinishDisplay(y)
}
我們做出MoveItems()
通話它有一個集合和for-each循環。因此,如果該集合中有600個項目,我們也會調用FinishDisplay()
方法600次。但那是我需要重構的地方。我不需要FinishDisplay()
每次爲集合中的每個項目調用。如果我最後只能說一次,那就夠了。
所以我正在尋找一種方法來重構此代碼,以便FinishDiplay()
被調用一次。我控制了源代碼,所以如果我需要公開某些方法或者創建一些方法的重載,我也可以這樣做。
+1 - 更好的主意。 – Rotem
謝謝。 「myImpl」是指什麼? – Bohn
爲了簡潔起見,我將組件A和B的兩個方法放入'myImpl'對象中。 'SuspendAutoFinish'和'ResumeAutoFinish'進入程序集B,而我的代碼中的用戶部分進入程序集A. –