我有5个网页表单,其中包含具有不同功能的相同用户控件。当前系统遵循MVP模式。所有这些Web表单都继承自单个基类(请参阅下图)。现在,我必须单独禁用每个表单以适应所有表单通用的特定条件。所以,我为其中一个表单编写了一个方法来禁用其用户控件中的每个字段,它工作正常。我可以将此方法重新用于其余的Web表单,因为它们都包含相同的用户控件集。
DisableControls()方法调用每个用户控件的DisableInputs()方法:
这将在其他Web表单类中重复。有没有人可以建议一个合适的解决方案来重复使用这种方法?
答案 0 :(得分:1)
如果在DisableControls()
的基类中包含一个空子,则可以在子类中覆盖它,而不必为基类提供子类的特定知识。
这样的事情:
Public Class Base
Overridable Sub DisableControls()
'Do nothing if nothing is implemented
End Sub
End Class
Public Class Instance1
Inherits Base
Public Overrides Sub DisableControls()
Me.UserControl1.DisableInputs()
Me.UserControl2.DisableInputs()
End Sub
End Class
Public Class Instance2
Inherits Base
Public Overrides Sub DisableControls()
Me.UserControl3.DisableInputs()
End Sub
End Class