java - API设计-使用对象还是集合作为参数?

标签 java oop api-design

以下哪一种设计被认为更适合 API?为什么?

apiMethod(Map<A, B> aToB)

apiMethod(MapWrapper<A, B> mapWrapper) 哪里MapWrapper只是一个包含对 Map 的引用的类。

这两种方法各有什么优缺点?

最佳答案

您始终追求“简约”的 API。

在这种情况下:当您的 API 在传递 Map 时起作用 - 那么您当然会选择该路径。为什么要让您的客户承担首先包装 map 的负担?!

选项 1 的优点是 - 这是直接的路径。

而选项 2 的缺点只是使 API 的使用变得更加困难。

换句话说:如果该参数的中心“属性”是“成为 map ” - 那么它应该作为 map 传递。但是,当“中心主题”有所不同时,您就会传递一些与其他主题相符的内容。

关于java - API设计-使用对象还是集合作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46039506/

相关文章:

java - apache mina 中的死 session

java - 从构造函数创建对象时执行某些方法

java - 在二维阵列中发现相同的图案

Node.js之类的API设计原理和工作流程

java - 这里面有什么设计模式吗?这个java代码有什么可能的缺陷吗?

java - 线程 "main"java.lang.NoClassDefFoundError : org/kie/api/KieServices$Factory with Drools version 7. 59.0 中的依赖关系异常问题

java - 从mongo集合中检索数据collection.find(query)

c++11 - 命名 API 是否意味着内存所有权的转移?

java - 线程 "main"java.lang.NoClassDefFoundError : org/apache/log4j/Logger after creating an executable JAR but this is a JAVA Project 中出现异常

sql - 这是一个好的设计吗?