Скажіть, у мене є:
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;
зробив би речі трохи цікавішими.