2016-11-14 102 views
-1

我有一個關於對象檢測的項目,它將根據用戶輸入在2D圖像和3D點雲上繪製結果和基本事實。所述用戶輸入是關於如何清理我的代碼的建議

Detection2D,GroundTruth2D,Detection3D,GroundTruth3D

例如1111的輸入將繪製檢測和地面實況上二維和三維而1000中繪製的檢測僅在2D

因此我程序,我有4個大塊如果4個條件和1個更多的最後一步。無論如何,我可以讓我的代碼看起來更整潔?我已經讀過另一個線程,其中解決方案是識別if塊中的重複。我沒有重複,所以還有其他方法嗎?

+1

使用函數? –

+0

函數和一個標誌枚舉。 – Banex

+0

你的意思是你想要基於數字的條件。對? (即3個條件爲111?) – Sean83

回答

0

處理這種情況的經典案例是爲每個案例創建一個類,它繼承自一個公共基類。然後工廠可以根據輸入創建合適的課程。

但是,對於給定的信息,目前還不清楚這種方法是否會幫助或使代碼複雜化。

主要優勢可能是在呼叫方更好地分配責任和更清晰的代碼。

這是example of a factory in wikipedia (java)