Nói rằng tôi có:
interface Thing
{
GetThing();
}
class FastThing : Thing
{
public int GetThing()
{
return 1;
}
}
class SlowThing : Thing
{
public int GetThing()
{
return GetThingFromDatabase();
}
}
Đây có phải là vi phạm Nguyên tắc thay thế Liskov không?
FastThing
bằng SlowThing
, LSP không áp dụng. Nếu bạn thêm một bình luận Thing::GetThing
có nội dung "Rất nhanh", câu hỏi có thể được thảo luận.
GetThingFromDatabase()
không đủ chậm để làm cho điều này gây tranh cãi.Factor4096BitPublicKey();return 1;
sẽ làm cho mọi thứ thú vị hơn một chút.