以下哪种设计被认为对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