面向过程 & 面向对象
前面很长一段的时间中我们都接触者面向过程的设计和学习过程,面向过程通俗的说就是从具体的、细节处、从微观处着手研究;而面向对象是先从整体处把握,从宏观处出发,把要研究的东西看成一个对象,一个整体,再从整体处分工、细化。这两种思考方式各有优势,但从长远来说,我们学习或是生活中还是用面向对象的方法和思维比较的多,但面向对象你知多少呢?
一、无处不在的面向对象:
面向对象技术在我们现实生活中已经席卷了整个软件世界,事实也是的确如此。vb的学习、数据库、学生系统、机房系统、软件工程、uml、C#、设计模式等等都贯穿着面向对象的技术。作为程序设计的一种方法,他具有很多很多的有点,面向对象思想相当有吸引力也在于它和我们人类的思想并驾齐驱,常常是不谋而合,那倒不是吗?我们生活中也是常常把周围的事物分门别类,也许是因为这对于我们的大脑来说,区分几个类别远远比区分众多实例来的容易呀!
二、什么是对象:
对象简单来说是一种类(种类)的实例。如下面,你和我都是person这个类的实例。它具有属性和行为等自身的结构。
三、面向对象建模:
行为有:
1)、抽象(abstraction):对象高度性的概括。如鸟、老鹰、骏马、牛可以概括为动物。
2)、继承(inheritance):
3)、多态(polymorphism):对象的操作可以有多个。比如打开,有打开门、打开窗户、打开纸、打开礼物盒等等。它是为了能让建模者和用户之间进行更好的交流。
4)、封装(encapsulation):把一些具体或细节的操作隐藏起来。比如电视机,我们只能看到显示屏,其他的电源、主板、显像管等等都被封装在一个盒子里了。
关系有:
1)、传递(message sending):一个对象发出操作信息给另一个对象。
2)、关联(association):
3)、聚集(aggregtion): 比如电脑的鼠标、键盘、主角、显示器等各部件一起称电脑。
四、对比:
五、基于构件的软件开发方法:这是一种比较高效的开发方法,先建一组类,边建的同时添加相应的功能和构件,最后建一个新的系统(也可以重用已建的系统)这样就不会想前面的工作觉得没有。
注意:建模中的符号命名规则:
1)、类名大写开头:High;多个单词的类名连一起是每个单词的开头要大写:WashMachine。
2)、特征(属性、操作)以小写开始;多个单词的特征名一起是,第一个小写,后面的其他单词开头大写。
六、总结感悟:面向过程和面向对象在生活中的对比而言,我们常常还是面向对象的技术用的较多,面向对象中也包含着面向过程的方法,当然两者互相的参透和联系着。以前看过一篇报告,美国心理学家Isabel Gauthier 和 Michael Tarr 使用了专门为此眼睛设计的新奇物体,并配合使用了展现大脑即时状态的图像技术,他们发现,当我们学习时,对事物进行分类时,大脑批次的一个特定区域就会渐渐的变得活跃起来。我想这也这是面向对象技术流传和运用这么广泛的原因呀!