关于在返回接口时返回更少/更多特定接口的OO最佳实践

时间:2012-06-25 11:31:57

标签: oop

这个头衔有点棘手...... 当我编写接口时,通常最好的做法是尽可能地返回最具体的接口,或者至少?

例如,假设

interface List2<T> extends List<T>
{
    List<T> getRange(int startIndex, int endIndex);
}

将其更改为

会更好吗?
interface List2<T> extends List<T>
{
    List2<T> getRange(int startIndex, int endIndex);
}

这样调用者可以在结果上调用getRange,同时仍然以多态方式匹配List?

1 个答案:

答案 0 :(得分:2)

如果代码发生了很大变化(通常在开发过程中),我会返回最具体的界面,并在需要进一步需求时将其扩展。这样,您鼓励不经常使用界面,如果您决定稍后删除或彻底更改界面,则更容易更改。

如果代码是稳定的,或者是要发布的API的一部分,我会返回最广泛的界面,以使其可供最大的受众使用。