以下哪种设计被认为更适合API?为什么?
apiMethod(Map<A, B> aToB)
或
apiMethod(MapWrapper<A, B> mapWrapper)
其中MapWrapper
只是一个包含对Map的引用的类。
这两种方法的优点和缺点是什么?
答案 0 :(得分:3)
你总是努力做到&#34;简约&#34;蜜蜂。
在这种情况下:当您的API在传递地图时有效 - 当然您选择该路径。为什么要将客户的负担首先换行该地图?!
选项1的专业是 - 这是直接的路径。
而选项2只有使用更难以使用API的缺点。
换句话说:如果中心&#34;属性&#34;该参数是&#34;是一个地图&#34; - 那么它应该作为地图传递。但当'&#34;中心主题&#34;是不同的东西 - 然后你传递与其他主题相关的东西。
答案 1 :(得分:0)
我认为使用doSomeStuff(Session session){
String aa = session.get("aa");
String bb = session.get("bb");
return aa + bb;
}
作为API的参数是不好的做法,因为很难理解您的API真正需要什么。在一些古老的代码中,我找到了类似的方法:
doSomeStuff(String aa, String bb){
return aa + bb;
}
此代码的重构将是:
aa
您知道需要bb
和core.es5.js:1169 Uncaught Error: No provider for PlatformRef!
at injectionError (core.es5.js:1169)
at noProviderError (core.es5.js:1207)
at ReflectiveInjector_.webpackJsonp.../../../core/@angular/core.es5.js.ReflectiveInjector_._throwOrNull (core.es5.js:2649)
at ReflectiveInjector_.webpackJsonp.../../../core/@angular/core.es5.js.ReflectiveInjector_._getByKeyDefault (core.es5.js:2688)
at ReflectiveInjector_.webpackJsonp.../../../core/@angular/core.es5.js.ReflectiveInjector_._getByKey (core.es5.js:2620)
at ReflectiveInjector_.webpackJsonp.../../../core/@angular/core.es5.js.ReflectiveInjector_.get (core.es5.js:2489)
at createPlatform (core.es5.js:4239)
at core.es5.js:4265
at core.es5.js:4262
at core.es5.js:4262
来调用您的API。