【发布时间】:2015-02-18 17:15:53
【问题描述】:
据说针对接口而不是特定类型进行编码是一种好习惯。换句话说,我们在创建 API 时公开通用接口而不是特定实现。
例如:
public Collection<Model> getUniqueModels();
public void setUniqueModels(Collection<Model> modelCollection);
但我的问题是,如果我想让消费者知道我只会返回一组独特的模型,即所有模型都会不同,该怎么办。
public Set<Model> getUniqueModels();
public void setUniqueModels(Set<Models> modelSet);
这是创建 publc API 的坏方法吗?如果我使用合集,而消费者发送了一份无效的重复模型列表怎么办?
【问题讨论】:
-
coding against the interface rather than a specific type:Set也是一个接口。如果您期望Set,那么在签名中说Collection是没有意义的,是吗? -
我同意,但请看下面的答案。这就是我的疑问
标签: java collections set public