我的自定義按鈕實際上是一個按鈕,它是違反LSP嗎?這是違反Liskov替換原則嗎?
class ConditionalButton : Button
{
protected override void OnClick(EventArgs e)
{
if (Condition())
base.OnClick(e);
}
private bool Condition()
{
//return true or false
}
}
我不認爲它違反了LSP。但我敢打賭它違反了用戶界面指南。如果'Condition()'爲'False',則禁用該按鈕以使其不能被按下。 – 2014-11-05 08:50:08
@JackHughes我同意你的第二點(用戶界面指南),並且不同意第一點,因爲這顯然違反了LSP。 – 2014-11-05 09:09:11