Скажи, что у меня есть:
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;сделало бы вещи немного интереснее.