这个OOP惯例是真的吗?

Iva*_*nov 2 oop

前段时间我读过OOP的"约定",但我不确定我是否记得正确.

它说一个方法必须将继承层次结构中最通用的对象作为参数,而返回最后代的对象.

这是真的,如果是的话,任何人都可以解释一下吗?

例:

IList<T> someMethod(IList<T> someList)
{
    IList<T> resultList = new List<T>();

    ... do something with resultList ...

    return resultList;
}
Run Code Online (Sandbox Code Playgroud)

根据'约定',上面的方法应该返回List而不是IList?

Dav*_*man 5

通常情况下,类声明了一个指向对象的泛型指针.通常是基类.在运行时,通过构造函数或setter方法注入更具体的类,该方法允许扩展代码而不进行修改.这是软件工程中的圣杯.有一条规则说基类应该可以用它们的派生类替换--Liskov替换原则.我不确定你的例子似乎没有使用someList参数.