我已经使它成为一个个人规则,在使用它之前继承每个UI控件。在以前的生活中,我总是认为这是你可以做的不太有用的事情之一,因为理由总是好像是“我可能想要一次改变所有按钮上的字体”......这是一种永不成功的动机......曾经......曾经。但是,最近的两个项目已经改变了我对这种做法的看法。首先,我们需要一个一致的“ValueChanged”事件,以便我们可以轻松地在表单上实施“脏”标志,而无需大量的switch语句在Textbox的“TextChanged”事件或ListBox的“SelectedIndexChanged”之间进行选择。只是想要一个一致的东西来倾听所有控件,并且对内置控件进行子类化很容易就能买到我们。什么是“正确”的方式来隔离控制依赖
在第二个项目中,我们尽了一切努力与基本控件相处,因为UI预计会非常简单,但是几个月后,显然他们不会再削减它了,我们购买了Telerik控制套件。如果我们继承了所有的控件,那么将我们的派生控件更改为从Telerik控件继承将会为我们全局应用这些更改。相反,我们必须在所有的表单设计师中进行一些搜索和替换。
因此,这里是我的问题:什么是相对的优势和
- 弱点简单地增加一个类,并使其从控件继承。
- 添加一个新的“自定义控件”并继承。
- 添加一个新的“组件”并继承。
这三者最后都有相同的效果,你会得到一个新的Button类型放在你的表格上。我看到所有三个人都被不同的人使用,每个人似乎都认为他们的方式是最好的。我想我应该把这个讨论放在StackOverflow上,也许我们可以确定一个共识,就是哪一个是“正确”的方式。
注:我已经有我的个人意见,哪些是“正确”,但我想看看世界的想法。
在我们的例子中,我们使用的是被动视图MVP模型,所以在模型层面上的倾听不适合我们。上面的例子被简化,只是为了设置问题本身。 1和2在功能上是相同的,但是由于设计器文件而在结构上不同。 – Mel 2009-02-27 13:24:44