前段时间我读过类似 OOP 的“约定”之类的东西,但我不确定我是否记得正确。
它说一个方法必须以继承层次结构中最通用的对象为参数,同时返回最后代的对象。
这是真的吗?如果是的话,谁能稍微解释一下?
例子:
IList<T> someMethod(IList<T> someList)
{
IList<T> resultList = new List<T>();
... do something with resultList ...
return resultList;
}
根据“约定”,上面的方法应该返回 List,而不是 IList?
最佳答案
通常情况下,类会声明一个指向对象的通用指针。通常是基类。在运行时,通过构造函数或 setter 方法注入(inject)一个更具体的类,允许在不修改代码的情况下扩展代码。这是软件工程中的 chalice 。有一条规则说基类应该可以被它们的派生类替换——里氏替换原则。 我不确定您的示例似乎没有使用 someList 参数。
关于oop - 这个 OOP 惯例是真的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18124793/