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?
FastThingcon SlowThing, el LSP no se aplica. Si agrega un comentario al Thing::GetThingque 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.