导读:结束了软工文档后,就开始了UML的学习,不管学习什么,都要先从整体上去把握,然后再从细节上去分析理解。在视频的开头,就对UML进行了概述。然后接着讲了面向对象技术,用例图,类图和包图等。看着软工分段总结的效果还不错,所以,本阶段的学习,继续分段总结。本篇文章共分为:一、UML概述;二、面向对象技术(软工);三、面向对象技术(UML);四、面向对象技术(HHX);五、区分基于对象、面向过程;六、个人感受。
一、UML概述
在概述中,学习到了UML是什么,以及它的来源历史。UML作为一种程序设计语言,它的初衷也和软件工程一样,是为了提高软件质量,解决软件危机。而,UML的应用,则又是基于9种UML图和4种关系。从概述中,我们可以很清晰的发现,UML的一个重点,则是它的构造。
二、面向对象技术(软工)
在软工的学习中,面向对象技术也作为一个重点辅助技能进行掌握。它主要从OOA(面向对象的分析)和OOD(面向对象的设计)进行讲解说明。在OOA中,又从分析任务、分析方法(OMT)和分析内容(5层)进行说明。在OOA里,要重点把握各层的标识。其后的OOD,则主要介绍了它的设计原则和方法。
三、面向对象技术(UML)
在UML里,为了弥补有些人没有接触面向对象技术,又对面向对象技术进行了说明。它主要从两个方面进行讲解:理论、应用。在UNL里,主要讲解了面向对象中的概念:对象、类、属性、操作、接口、组件、包、子系统等。以及面向对象的基本原则:抽象、封装、继承、多态。这几个原则在软工里的OOD里面也有体现。
四、面向对象技术(HHX)
对比了UML和软工里面关于面向对象的讲解,再看了看信管和数理中关于这一方面知识的描述,形成了我对面向对象技术的理解。我理解的面向对象技术,主要从三个方面:开发方法、开发原则、技术特点。而面向对象技术的相关概念,在UML和软工中介绍的都很详细。对比可以发现,面向对象的原则也好,特点也好,都离不开三个:封装、继承、多态。
五、区分基于对象、面向过程。
5.1 区分基于对象
我记得老师讲VB的时候,说过:严格意义上讲,VB是基于对象......那时候,不是很理解,因为书里说的是面向对象,不明白怎么就成了老师说的基于对象了。现在,我有点理解了。
首先,面向对象的三大特点(封装,继承,多态)缺一不可。而,从敲的小例子中,学生,机房来看,VB实现了封装,而继承和多态这两个,就没有很完美的体现。
其次,我们所谓的基于对象,很大程度上是使用对象。基于对象,无法实现继承,从而更无法实现多态。而使用对象,则可以看做是实现了封装。
最后,区分面向对象和基于对象的方法是:是否实现了继承和多态,是,则面向对象;否,则基于对象。
5.2 区分面向过程
还记得,当时总结VB的时候,懵懵懂懂的就照着别人说的面向对象和面向过程两个方向去总结,而常常挂在嘴边的也是这两个。可是一直以来,都不是很明确的清楚这两个到底是什么样的东西。
面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象:是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
举一个例子,跳绳游戏。面向过程则是:1,人先去摇绳;2,去跳;3,跳绳失败;4,换人摇绳;5,去跳;6,跳绳失败;7,重复步骤;8,结束游戏。而面向对象则是:1,参加人员;2,跳绳方法;3,游戏规则。当行为触发了游戏规则,则会自动判定输赢。
六、个人感受
现在回头去看VB,按照面向对象和面向过程这两个方法来总结是值得肯定的。当时不明白为什么要那样去做,但就是随大流的那样去做了,直到现在,才开始有了一点自己的想法。当自己有了想法之后,就对之前的知识进行纠正和归类,从而也得到了新的提高。
有时候,不必过于纠结每一个细节的东西,先就把它当做是王八的屁股。等到相关知识积累的多了,就一定会在脑子里形成碰撞,从而形成真正属于自己的东西。
请大家多多指教,谢谢!