我有一個方法,其目的是檢索收集項目。使用布爾標誌優化方法
一個集合可以包含各種項目,比如說:鋼筆,鉛筆和紙張。
第一個參數允許我告訴方法只檢索通過的itemType(例如,只是鋼筆和鉛筆)。
第二個參數標記函數使用集合的默認項目類型。
getCollectionItems($itemTypes,$useCollectionDefaultItemTypes) {
foreach() {
foreach() {
foreach() {
// lots of code...
if($useCollectionDefaultItemTypes) {
// get collection's items using collection->itemTypes
}
else {
// get collection's items using $itemTypes
}
// lots of code...
}
}
}
}
什麼感覺奇怪的是,如果我設置$ useCollectionDefaultItemTypes爲真,就沒有必要爲函數使用的第一個參數。我正在考慮重構這個方法到這樣兩個:
getCollectionItems($itemTypes); // get the items using $itemTypes
getCollectionItems(); // get the items using default settings
的問題是,這些方法都會有很多重複的代碼除了if語句區域。
有沒有更好的方法來優化呢?
用什麼語言? – SLaks
這是最初的PHP,但我爲了說明的目的對它進行僞編碼。 – jexx2345