Digamos que tengo:
interface Thing
{
GetThing();
}
class FastThing : Thing
{
public int GetThing()
{
return 1;
}
}
class SlowThing : Thing
{
public int GetThing()
{
return GetThingFromDatabase();
}
}
¿Es esto una violación del Principio de sustitución de Liskov?
FastThing
con SlowThing
, el LSP no se aplica. Si agrega un comentario al Thing::GetThing
que dice "Es muy rápido", se puede discutir la cuestión.
GetThingFromDatabase()
No es lo suficientemente lento como para hacer que esto sea controvertido.Factor4096BitPublicKey();return 1;
haría las cosas un poco más interesantes.