5

那个标题有点棘手......当我编写一个界面时,通常最好的做法是尽可能返回最具体的界面,还是最少?

例如,假设

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?

4

1 回答 1

2

如果代码变化很大(通常仍在开发中),我会返回最具体的接口,并在进一步需要时使其更广泛。通过这种方式,您鼓励不要过于频繁地使用界面,并且如果您决定稍后删除或彻底更改界面,则更改内容会更容易。

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

于 2012-06-25T11:40:02.023 回答