Angenommen, ich habe:
interface Thing
{
GetThing();
}
class FastThing : Thing
{
public int GetThing()
{
return 1;
}
}
class SlowThing : Thing
{
public int GetThing()
{
return GetThingFromDatabase();
}
}
Handelt es sich um eine Verletzung des Liskov-Substitutionsprinzips?
FastThing
mit SlowThing
, wird der LSP nicht anwendbar. Wenn Sie einen Kommentar hinzufügen, in Thing::GetThing
dem "Ist sehr schnell" steht, kann die Frage diskutiert werden.
GetThingFromDatabase()
ist nicht langsam genug, um dies umstritten zu machen.Factor4096BitPublicKey();return 1;
würde die Dinge ein bisschen interessanter machen.