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