2009-11-11 56 views
0

我开始使用c#开发,并且听说它说所有的标准控件都应该在自定义类中“包装”,即使此时我没有添加任何额外的功能。引用此案例的例子是某人开发系统的应用程序,在部署之前的一个晚上,客户要求文本框以某种方式行事,类似于旧的大型机系统,开发人员能够实现此功能在15分钟内通过修改他们的控制子类,或者类,或者其他任何东西。包装控件

我应该以这种方式为标准控件创建自定义包装吗?

回答

3

我个人不这样做,我不认为我会建议,如果你是刚在C#开发开始。

我包控制在较高的水平,并使用模型视图演示模式的数据并允许控件的变化而无需重写逻辑的视觉分离。

2

我真的不能看出它应该值得费心。如果出现类似于您所描述的情况,那么使用tag mapping仍然可以实现同样的效果,它基本上可以让您编写自己的包装,并且说:“在我的代码中的任何地方,当我说TextBox时,我的意思是MyCustomTextBox”

1

这听起来很像未来打样到我,因为习惯我尽量避免对可能发生的事情做出决定。这种包装控制会让你的代码更复杂,更难以维护。尽管如此,我不知道你所处的特定情况,你所描述的可能是一种常见现象。

可能有更好的方法去了解它,可能通过使用接口和不同的设计模式,但你真的必须使用你是什么舒服和理解好。在混乱的项目以及允许客户在任何时间点做出任何决定的客户尤其如此。如果您认为这是处理这种情况的最佳方式,并且您认为在项目中发生描述的可能性很大,那么这可能不是一个坏主意。这可能不是我的选择,但这并不意味着这是一个错误的决定。

2

虽然您所说的开发人员被称为他们令人惊叹的作品的下一个弥赛亚,但他们展示了不良的项目管理技巧,无论是让客户进行如此接近发布的变更,还是实际上实施它并在第二天早上将产品滚出。它可能已经工作过了,但下一次他们尝试时,当客户端系统出现意外的错误时,最终可能会产生巨大的恶梦。

在任何情况下,以这种方式扩展的控制,以防万一你可能需要在未来某个时候,是不是好的做法。只写出你需要写的东西来满足规范 - 稍后当你有时间刻录的时候会出现额外的内容。

1

heard it said that all standard controls should be 'wrapped' in a custom class

首先,谁说,你应该阅读我的wiki的问题:Ways to prevent over-engineering。有人问,专门帮助像他们....

在回答你的问题,我的建议是仅在必要。如果你提供了一个场景,那么我可以更具体一些,但是,作为一个普遍的共识,这是一个明确的没有