1. 传统软件开发方法及其存在的问题
传统软件开发方法 | 存在的问题 |
功能分解法 | 局部变化导致全局变化 |
结构化方法 | 导致需求分析模型到设计模型的过渡困难 |
信息建模法 | 仅对问题域中的数据进行建模,而没有对功能行为进行建模 |
2. 面向对象的基本思想
2.1. 面对对象思想的主要概念:类,对象,继承,封装,消息,关联,聚合
2.2. 基本思想及举例说明(举例以一个学校为例)
基本思想 | 举例说明 |
一切客观事物都是对象 | 一个学校是一个对象,一个学院是一个对象,一个老师,一个学生都是一个对象 |
对象有属性(静态特征)和操作(动态特征) | 一个老师的名字,工号,教学科目就是静态特征,也就是属性;而修改工号,查看名字等这种就是动态特征,也就是操作 |
将对象的属性和特征结合成一个实体,并对外界隐藏实现细节,也就是封装 | 也就是老师这个对象由它的静态特征和动态特征构成,而对于其动态特征,例如查看工资,外界不应该看到具体代码是如何计算老师工资的过程,而只能获取到最终结果。 |
通过抽象对事物进行分类 | 具有相同属性和相同操作的对象归为一类,例如,所有的老师的对象可以抽象出一个老师类。 |
负责的对象可以用简单的对象作为构成部分,也就是聚合(组合) | 一个学校对象,可以由多个学院对象和一个校长对象等等聚合而成 |
通过不同程度的抽象,可以得到一般类和特殊类,特殊类继承一般类 | 例如,一个班级的同学是一个一般类,而班长是一个特殊类,继承同学类,除了同学类的属性,操作外还有自己特殊的属性和操作 |
通过关联表达类之间的静态关系,通过消息实现类之间的动态联系 | 老师和学生之间有关联(课程);代码实现可以通过参数传递消息 |
3. 面向对象的基本原则
抽象、分类、封装、消息传递、多态性、行为分析(对象状态的变化)、复杂性控制(引入包的概念)