这次主要说面向对象技术,面向对象,在之前就已经接触过,那么这里我来比对着学习一下。
大道至简,其实面向对象讲来讲去就这两样东西,一是它是什么,二就是它是怎么来的。
一、先说它是什么吧,也就是他的概念。这里我想先回忆一下之前学到的这些东西。首先是VB,它主要是面向过程,面向对象的东西并不多。C++呢,面向对象这一块还是非常重要的,不管是学习还是考试,这都是一个重点。基本上一提到面向对象,那就是对象、类、继承、多态、封装。再来看看我们软工中说到的面向对象:
面向对象=对象+类+继承+通信。 在说这个的时候,咱可以先看看之前学过的知识《C++程序设计(8)之类和对象》(还等什么,赶快点击吧!!!)。咱就说不同的地方,对象,VB中对象都有什么啊,属性和方法(包括事件)。在这里我们看看对象啊,属性不变,多了一个操作(又称为方法或服务),那不还是我们所说的方法吗!类如果没序号的话,这里再学一遍,很多对象把他们的主要共同特征找出来,就构成了一个类。类也有属性,不过那叫数据属性,它也不少操作。继承都是老知识点了就不说了。真正眼前一亮的是消息,貌似之前没见到过,现在见也不晚。想想也知道,通信肯定是对象与对象间的,跑不了别人。
二、再来说它是怎么来的,也就是它的开发过程。好比盖楼,首先你得想在哪盖,地基行不行,此谓分析。然后你得想盖几层的,盖什么风格的,此谓设计。然后就开始实施动工,此谓实现。盖完了,你不得检查一下啊,盖得怎么样,坚固程度如何,此谓测试。我们具体点来说。
1、分析:我们分析时收集的信息需要记录下来吧,那么在软工中,它怎么来记录呢,用了三个模型。做什么、何时做、对谁做分别对应了功能模型、动态模型和对象模型。怎么理解呢,功能模型它通过计算,从输入数据能得到什么样的输出,而动态模型的状态图和事件追踪图(前者针对一个对象,后者针对很多对象)都表明了他是按什么时序执行的,而对象模型就是描述一下“谁”,他们是类和对象以及他们的属性和操作,之间的联系。这里说明一下。类和类之间的关系叫关联,包括整体和部分,称聚合;根据一样东西来限定,称限定;通过角色间的关系进行关联,称角色。
这里出现了一个概念叫OOA,是面向对象的分析。在这里主要分析得是它概念模型的五个层次:类与对象、属性、服务、结构和主题。
(1)类和对象层是基础,如何建立基本块。
(2)属性层不仅是对象的属性,还有实例连接。
(3)服务层也不仅是对象的服务吗,还有对象实例之间的消息通信
(4)结构层当然是描绘结构的。它有一种结构泛华-特化结构表明了类的继承性。还有一个整体-部分结构。
(5)主题表示模型的整体框架。
2、设计:又是一个新词,OOD,就是面向对象设计。包含两个设计,高层设计和类设计。
主要讲高层设计。它听起来挺高大尚的,其实就是构造软件的总体模型。设计时当然要使通信量最低,独立性强,识别性强。设计方法有四种。问题论域部分,主要针对执行基本功能的对象对象;人机交互部分针对界面;任务管理部分针对操作系统;数据管理部分针对与数据库技术接口对象。细讲一下第三种设计方法:
用户界面的设计。既然是人机交互,那肯定有人啊,首先得分类用户,描述人及其任务的脚本,当然还要设计命令层,设计详细的交互。一般使用快速原型工具让用户使用,根据用户反馈来修改完善。之后就是设计人机交互(HTC)类。
三、实现与测试:实现的核心是类的实现。类封装了基本所有的数据。然后就是测试了,前面刚学过,这里简单一提。单元测试,又叫类测试,这很容易理解,测试的对象肯定是封装了的类或对象。然后就是组装测试,可以基于线索也可以基于应用进行测试,最后就是确认测试了。
总结:面向对象这一块的知识框架是庞大的,那怎么样才能很好地理解并掌握呢!第一,首先把以前学过的有关的东西拿过来用,需要学习的东西就少了很多;第二,先宏观把控,再进行细化。这样每个知识点你都知道讲的什么,就算遇到难以理解的,你也知道了它的范畴,有了一个大致的印象。