Dì che ho:
interface Thing
{
GetThing();
}
class FastThing : Thing
{
public int GetThing()
{
return 1;
}
}
class SlowThing : Thing
{
public int GetThing()
{
return GetThingFromDatabase();
}
}
È una violazione del principio di sostituzione di Liskov?
FastThing
con SlowThing
, l'LSP non si applica. Se aggiungi un commento al Thing::GetThing
quale dice "È molto veloce", la domanda può essere discussa.
GetThingFromDatabase()
non è abbastanza lento da renderlo controverso.Factor4096BitPublicKey();return 1;
renderebbe le cose un po 'più interessanti.