以下哪種設計被認爲對API更好?爲什麼?API設計 - 使用對象還是集合作爲參數?
apiMethod(Map<A, B> aToB)
或
apiMethod(MapWrapper<A, B> mapWrapper)
其中MapWrapper
是簡單地包含對地圖的引用的類。
這兩種方法的優缺點是什麼?
以下哪種設計被認爲對API更好?爲什麼?API設計 - 使用對象還是集合作爲參數?
apiMethod(Map<A, B> aToB)
或
apiMethod(MapWrapper<A, B> mapWrapper)
其中MapWrapper
是簡單地包含對地圖的引用的類。
這兩種方法的優缺點是什麼?
您一直在努力尋找「簡約」的API。
在這種情況下:當您的API在傳遞地圖時工作 - 那麼當然您選擇該路徑。爲什麼把你的客戶的負擔放在首位換行那地圖?!
選項1的專業人員是 - 這是直線前進的道路。
儘管選項2只有使其難以使用API的缺點。
換句話說:如果中央該屬性的「屬性」是「要成爲一個地圖」 - 那麼它應該作爲地圖傳遞。但是,當「中心主題」是不同的 - 那麼你傳遞了其他主題的東西。
我認爲使用Map
作爲API的一個參數是不好的做法,因爲很難理解你的API真正需要什麼。在一些古老的代碼,我發現類似的方法:
doSomeStuff(Session session){
String aa = session.get("aa");
String bb = session.get("bb");
return aa + bb;
}
這段代碼的重構將是:
doSomeStuff(String aa, String bb){
return aa + bb;
}
,你知道你需要aa
和bb
打電話給你的API。
我希望有一個模型類作爲參數,而不是通用的'Map'。 'MapWrapper'也沒有意義 - 增加的價值會有'Map'嗎? – lexicore
第一個,添加一個包裝是沒有意義的。可能比使用地圖更好的設計是可能的。 – Oleg
那個地圖是由什麼負責的? – Andrew