关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。
两年前关门了。
改进这个问题
以下哪种设计被认为更适合api?为什么? apiMethod(Map<A, B> aToB)
或 apiMethod(MapWrapper<A, B> mapWrapper)
哪里 MapWrapper
只是一个包含对Map的引用的类。
这两种方法的优缺点是什么?
关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。
两年前关门了。
改进这个问题
以下哪种设计被认为更适合api?为什么? apiMethod(Map<A, B> aToB)
或 apiMethod(MapWrapper<A, B> mapWrapper)
哪里 MapWrapper
只是一个包含对Map的引用的类。
这两种方法的优缺点是什么?
2条答案
按热度按时间szqfcxe21#
我认为使用
Map
作为api的一个参数是不好的做法,因为很难理解api真正需要什么。在一些古老的法典中,我发现了这样的方法:此代码的重构将是:
你知道你需要
aa
以及bb
调用api。falq053o2#
你总是追求“简约”的API。
在这种情况下:当您的api在传递一个Map时工作时,那么您当然选择了该路径。为什么要让你的客户先把Map包起来?!
方案1的优点是——这是一条直截了当的道路。
而选项2的缺点是使用api更加困难。
换句话说:如果该参数的中心“属性”是“to be a map”,那么它应该作为map传递。但是,当“中心主题”是不同的东西时,你就传递了一些与另一个主题相关的东西。