WinForm与面向对象
原创
©著作权归作者所有:来自51CTO博客作者桂素伟的原创作品,请联系作者获取转载授权,否则将追究法律责任
Windows Form,可以说是微软在开发C/S架构上的一个很好的平台,不但可视化做的很好(这应该是微软的强项),而且所有的控件都是建立在面向对向的基础上的,主窗体是第一个对像,它上面的所有控件都是主窗体的一个字段。其实从这个角度看来是完全面向对象的,但在很多时候,我们都会跳出面向象,而是直观的当控件用。
给常用这个问题,Form1是主窗体,Form2是次窗体,也是在Form1中调用出Form2窗体,调用的时候在Form1中new出Form2,然后show出Form2的对象,这个很好理解,如果在Form1中访问Form2中的数据,或在Form2中访问Form1的数据,再加上,Form1和Form2是类,还有操作的时候是对对象的操作,这些就使整个逻辑,理解起来有点迷糊。如果放到面向对象中的话,是很好理解的,在Form1对象中访问Form2中的数据,就意为着,Form2中数据的访问级别是公有的,才可以访问。在Form2对象中如何访问Form1对象中的,因为Form2对象是在Form1中创建出来的,所以如果操作Form1中的数据,只有把Form1对象传到Form2中进行处理(而不是在Form2中new一个Form1对象来处理),如果看成类和对象,这个关系很好梳理。
还有一个方面,正因为WinForm把内部的控件都封装成一个一个对角,再加上,WinForm上的控件,用事件的机制来向应用户操作,这就给开发人员(特别是面向对象了解不是太深的人)一个误区,比如,单击一个按钮,去作一个操作,很习惯的一股脑把全部的代码写在事件订阅的方法内,因为这样来去看代码的时候,很直观的感觉,比如这个按钮是查找数据库,把代码写到当前方法内,一目了然,保存按钮,里面写的保存数据的代码,也很直观。在某种承度上,可我们去理解操作流程时,这种写法是更人性化,或更符合人的思维方式的。面向对象的特征是继承,封装,多态,不管那种特征,都能在增加代码的复用性。还有,在有较强的业务逻啊时,对数据的处理,不得不把它们看成一个对象来处理,这个时候,单纯的用事件订阅的方法来处理逻辑,就有点得不应手了,还有就是当处理流程比较大时,单个方法放大量代码,也是不可取的(当然,这不构成我们去评判软件优略的标准)。所以在做WinForm时,一定要设计开对象,对象来源于业务,对象的处理,变换也得靠面向对象的原则来实现,所以对象是建立在代码的认知的基础上的,故对象有时候也会偏离现实原形的。使程序更灵活,再更进一步灵活,就涉及到去很下功的去分离,聚合实体对象与代码协作之间的关系了。
上一篇:Windows Phone 7
下一篇:软件开发中团队能力的培养
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
面向对象与面向过程
面向对象是什么样的?(Object Oriented)是将现实的事物抽象出来的方法,面向对象的程序设计是一种以对象为基
面向过程 面向对象 程序设计 封装 -
类与面向对象
ES 本身是基于对象的语言,虽然启用了类的概念,但是依然不是基于类的语言而是基于对象的语言。
javascript 命名空间 编程语言 重命名 -
原型与面向对象
实例化和原型 我们可以通过原型给函数附加属性,还可以在构造器函数内通过this参数初始化值。 function Ninja
面向对象 函数 实例 子类 构造器 -
面向对象与哲学
面向对象与哲学1 面向对象与语言无关初学者往往喜欢选择一门声称强力支持面向对象的语言。在这些面向对象的语言的布道
语言 汇编 class 编程 java