我的自定义按钮实际上是一个按钮,它是违反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