oop - 返回接口(interface)时返回更少/更具体的接口(interface)的 OO 最佳实践

标签 oop

这标题有点扯。。。
当我编写一个接口(interface)时,通常最好的做法是尽可能返回最具体的接口(interface),还是最少?

例如,假设

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?

最佳答案

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

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

关于oop - 返回接口(interface)时返回更少/更具体的接口(interface)的 OO 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11188543/

相关文章:

c++ - 如果你编写了一个 C++/OO 跨平台框架,发现它因为没有时间而在你的磁盘上放置了太多,你会怎么做?

java - Spring 环境中的领域驱动设计和事务

Python OOP,方法/类中参数的类型验证

javascript - 如何将方法从某个类的实例复制到对象

记录到控制台的 JavaScript 字段始终为 "undefined"

javascript - 创建对象属性的多个实例

oop - Coldfusion组件可以共享方法而不是同一个父类(super class)的后代吗

c++ - 在多个类中使用外部函数时出错

javascript - 创建元素的原型(prototype)函数并使用在加载时而不是单击时调用的继承

java - 返回 OOP 中的计算值