目录
-
OOA(面对对象分析法)相关概念
-
设计原则
-
UML
OOA(面对对象分析法)相关概念
-
对象:把人和物抽象为对象,他们的特征抽象为属性;
-
类:把对象的共性抽取出来形成的;
-
实体类:跟数据对应的就是实体类,比如系统中用到老师的信息,教师类就能当实体类
-
边界类:一个系统又他的边界,有些类会需要和外界系统进行交互,称为边界类
-
控制类:决定类和类之间的衔接、控制;
-
-
抽象:
-
封装:把相关数据封装再一起;
-
例如对象,操作对象的数据时,需要通过对象的接口操作,而不能直接操作;
-
开发时,把一部分属性定义为私有,需要通过接口才能操作;
-
-
继承与泛化:讲的是一回事,只是从不同的角度来看;
-
子类继承父类相关特性;
-
几个类之间有共性,抽取出来做成父类叫泛化,泛化出的类适用范围更广;
-
-
多态:同样的操作,控制的是不同的对象,那么操作有差异;
-
比如动物类其下有猫狗鱼,他们的运动都用run表示,动物类中也有run;
-
猫狗鱼里面会具体表达如何运动,但是运动方式不同;
-
更好的调用方法
-
如果创建一个对象集,这些动物都有,要控制他们的运动,定义一个变量指针是鱼,那么不能控制猫狗;
-
往往会定义一个动物指针,可以指向任何动物且各种动物会触发自己的操作而不是一样;
-
-
-
接口:特殊的类,只有方法的定义没有方法的实现;
-
消息:进行对象之间的交互采用的机制;
- 使用异步方式传输;
-
组件:即构件
-
模式和复用:经验的传承;根据抽象级别能分为:架构、设计、惯用法
设计原则
-
考试时一选择题出现情况较多;
-
问哪些说法对,或者给描述问是否符合思想
原则
-
单一职责原则:一个类功能越多,和其他类关联的可能越大,耦合度越高;
-
开放封闭:不要对程序修改、而是拓展;
- 新的功能用新的类、方法实现;修改程序很有可能引入错误,影响旧程序
-
李氏替换原则:子类要可以替换父类
-
子类继承自父类;父类相关的特性子类都有;
-
如果把子类的方法写重载那么,子类的无法替换父类(重载后截然不同的两种功能);
- 所以父类最好是个接口
-
-
-
依赖倒置:设计时,要依赖接口而不是实现类;只要继承该接口的类就能直接调用
-
计算机就是针对接口编程而不是实现编程;
-
主板上有槽,显卡、声卡上有插条;两者对接就能用;
-
无关乎部件是什么,只要满足接口就行;
-
-
电视机往往就是固定死的硬件,因为电视不考虑升级硬件;
-
软件开发中总是升级软件部件,如果针对实现编程,调整起来很麻烦;
-
-
接口隔离原则:使用专门的接口比使用单一总接口号
-
组合重用原则:继承是紧耦合关系,尽量少用;
-
迪米特原则:和信息隐蔽是一回事;往往通过封装实现;
UML
-
了解UML一系列图(核心)
-
对几种关系有了解;
-
规则和公共机制考试基本不会涉及,不讲;
-
关系和图(重点)
图
-
用图工具,把相关项目的情况表示;相当于给我们一个工具集;
-
问题:能不能用一个实例串起所有图?是不是一个项目把UML都用了才算会?
- 极端,做什么事用什么工具,没有说一定要把所有工具用上;
-
UML 2.0十四种图;1.0 有9种;
-
左边蓝框是结构图(静态图);右边是行为图(动态图);
-
用例图是静态图还是动态图有分歧,考试如果遇到不要定性,把其他图都分类完成后再看用例图;
- (大部分时候归为动态)
-
常见图的介绍
-
没详细解释的不用管;
-
静态图
-
类图:类和类之间关系
-
对象:对象和对象之间关系
-
包图:包和包直接关系,和包内部结构
- 所有静态图里面除了部署都是谁和谁的关系;
-
部署图:软件的构件应该部署再哪个硬件节点上
-
-
动态图
-
用例图:表达系统和外部的交互关系;
-
顺序图:时间顺序,强调时间
-
通信图:强调步骤不强调时间
-
顶视图:考的少
-
状态图:状态变迁
-
活动图:和流程图一致;
-