说我有:
interface Thing
{
GetThing();
}
class FastThing : Thing
{
public int GetThing()
{
return 1;
}
}
class SlowThing : Thing
{
public int GetThing()
{
return GetThingFromDatabase();
}
}
这是否违反了《里斯科夫换人原则》?
FastThing
用SlowThing
的LSP不适用。如果在注释中添加Thing::GetThing
“非常快”,则可以讨论该问题。
GetThingFromDatabase()
还不够慢,无法引起争议。Factor4096BitPublicKey();return 1;
会让事情变得更有趣。