API设计:返回类型应该是Map或者一个持有Map的新对象

时间:2016-03-04 13:04:16

标签: java api coding-style

我正在设计一个API来从客户端获取一些值,并且需要一些关于该API的返回类型的帮助。

该方法应该是什么(这不是真正的代码,这只是真实代码的表示)?

Approach 1:

public interface Provider {
    Map<Long, Long> getDependencies(String type);
}


Approach 2:

public interface Provider {
    Dependency getDependency(String type);
}

public class Dependency {
    private Map<Long, Long> dependency;
    public Dependency(Map<Long, Long> dependency) {
        this.dependency = dependency;
    }

    public Map<Long, Long> getDependency() {
        ImmutableMap.copyOf(dependency);
    }
}

更新

我认为第二种方法很好,因为它可以延期。

我还有一个问题getDependency我应该不变吗?

1 个答案:

答案 0 :(得分:0)

我会做任何你认为更简单,更清晰的事情。

至于延期,我建议您阅读YAGNI。如果你真的可以预测未来,我建议你玩彩票。如果你无法预测未来,我建议你不要尝试,只做你现在所需要的。