回顾
上一堂课主要学习了面向对象编程与非面向对象编程(面向功能、过程编程),本节课就重点来看看面向对象编程中的一个具体思想——抽象
面向对象编程的特性:1、封装性 2、继承性 3、多态性
封装:意味着提供服务接口
继承:意味着类之间层层的关系,也就是需要从上层到下层具体化,或从下层到上层抽象化
多态:意味着处理继承中的特殊情况,让类的关系更加自由
所以,本堂课重点来来看看抽象思想
抽象定义
抽象:是建立、理解和管理复杂的系统最主要的技术
包括:1、对一个功能实现的过程细节有目的的隐藏
2、以便让其他方面、细节表达的更清楚
举例:1、世界地图忽略细节以便呈现世界的整体样貌,整体关系
2、地方性的地图重点展示各山峰、超市、街道等,而忽略了整体的样貌、关系
抽象层次
层次一、团体
在面向对象程序开发过程中,关于“团体”有两个层次的含义:
1、首先是指程序员的团体,他们在现实世界中相互作用,以便开发出应用程序来。
2、第二个团体是这些程序员创建的对象的团体,它们在虚拟世界中相互作用,以完成它们的共同目标。
下图可以理解为一个程序的程序员团体或一个程序的对象团体
层次二、单元
在面向对象程序开发过程中,单元的含义有:
1、许多协同工作的对象组合到一个“单元”中
2、这些单元允许某些特定的名称暴露在单元以外,而其他特征则隐藏在单元中
3、例如,Java的“包” (packages),C++的“名字空间”(name spaces),Delphi中的“单元”(units)
注意:当用protected修饰类成员时,该类成员能够被其子类、同一包中的其他类访问
层次三、CS
在面向对象程序开发过程中,CS的含义有:
1、处理两个独立对象之间的交互
2、两个对象间交互时涉及两层抽象:一个对象(服务者, server)向另一个对象(客户, client)提供服务,二者之间以通信来交互
层次四、服务实现方式
1、考虑第三层次中的服务中具体的实现方式
2、这个具体实现方式仍然存在一定抽象,包括:实现算法、数据结构等
层次五、具体实现
1、方法的具体实现逻辑(具体过程、具体的算法数据结构的实现)
2、关注执行一个方法的具体操作实现
总结
1、在软件产品设计的过程中,我们思考的层次是从上到下进行的。因为越上层的抽象层度越高,越简洁。
2、软件开发团队布置任务的顺序也是从上层到下层,层层分解来布置的。越上层的其对应开发团队中的地位也相对更高
抽象方法
特化分层
定义
特化分层又称为特殊化或具体化,在具体化的物体中抽象出一些共同的特性、特点归为一个特殊的上层类的方法就称为抽象
举例
一、汽车是一个有轮的载运工具,而有轮的载运工具又是一个载运工具,所以载运工具就是从汽车这个具体化的物体中抽象提炼出来的
二、生物分为动物和植物,动物又分为脊椎动物和无脊椎动物,脊椎动物包括哺乳动物,哺乳动物又分为猫、狗
分治法
定义
将一层复杂的系统划分为多个组成部分,从而将复杂系统简单化。任何平常接触的名词都是抽象化后的结果,例如:汽车、手机等。这些都是将许多系统(传动系统、显示系统等),甚至更底层可以说是物质组合后抽象归纳出来的东西
举例
汽车是由发动机、传动机构、车身和车轮组成的,要理解汽车这个概念,只要依次检查其组成部件就行了
不同视角
定义
对同一件物品提供不同的视角。每一个视角会强调某一些细节而忽略其他细节,因此,对同一对象描述出不同的特性。本质上就是利用视角不同,对物体的功能和实现方式进行不同程度的抽象处理。
举例
一、机械师眼里的汽车和外行眼里的汽车,看法是很不一样的。机械师眼里的汽车抽象程度相对于外行人眼里的汽车就更低
二、服务视角:服务的制造者仅仅关注服务功能的实现并不关注使用的场地、环境等,服务的使用者仅仅关注什么时候使用服务并不关注服务的具体实现方式
总结
如果觉得写的还不错,可以点个赞收藏一下呀~~
祝大家学业、事业、爱情顺利!
天天开心,没有Bug每一天