.NET组件控件实例编程系列——1.开篇

网上已经有很多关于组件和控件的文章了,我也是通过这些文章慢慢学会这些技术的。但那些文章主要是教程式的,给的例子虽然简单容易理解,但针对实际应用的例子比较少。这里把我在工作和学习中做过的组件和控件的实现方法贴出来,希望对初学者能有帮助。当然我的代码中也会存在不少问题,有些解决方法也并不完美,希望看到的朋友不吝赐教。

首先把我之前参考的系列文章的链接贴出来,里面有比较详细的教程,对初学者帮助较大。

 .NET组件编程 http://www.cnblogs.com/mapserver/category/65343.html

WinForm控件开发 http://www.cnblogs.com/guanjinke/category/77694.html

要学会组件控件编程,首先必须了解PropertyGrid控件,以及相关的Attribute,这些在上面所给的参考文章中已经有比较详细的介绍。

关于控件,就不需要过多解释,而组件则没有控件那么应用广泛。最直观的理解是控件是运行时可见的,而组件是运行时不可见的。控件一般是用来和用户进行交互操作的,而组件是封装业务逻辑的。在我编程的时候,组件通常是附加在特定的控件上,为控件提供一定的业务功能的。而我在很多时候都偏向于使用组件,下面就分析组件相对于控件的优势。

比如对一个控件A需要添加功能X,用控件的方法去实现就是继承控件A,然后在新控件B中实现功能X。如果需要对控件A添加功能Y,继续用控件的方法的话,需要再创建一个控件C继承控件A,然后实现功能Y。但是如果再做完上面的工作之后,需要对控件A同时添加功能X和功能Y,或者需要对控件D添加功能X,就必须创建更多的控件。如此下去就会造成控件数量激增,不利于管理。

如果用组件的话,情况就大不一样了。创建组件分别封装功能X和功能Y,需要对控件A添加功能X的话,把组件X拖放到窗体中,设置组件X的一个属性指定为控件A即可。如果需要添加功能Y的话,和之前的步骤完全一样。如果需要对控件D添加功能,只要组件的接口支持控件D,和针对控件A的操作也完全一样。如此,给控件添加功能就像搭积木一样方便。每种功能只需要有一个组件去实现,然后把需要添加对应功能的控件与组件绑定即可。

组件的思路也符合编程中的一个基本原则:先组合后继承。比起控件来,组件的应用显得更灵活,所以在很多时候我都会选择组件。另一个原则就是一个组件只封装一种功能,不要贪多求全把多个功能封装到一个组件里,这样会降低组件的灵活性。

本篇就到此吧,从下一篇开始,将通过实例演示如何实现组件控件编程。

 

posted @ 2009-03-02 11:56  Alex Leo  阅读(2781)  评论(9编辑  收藏  举报