面向对象技术
12’ 占比最高
1.面向对象基本概念
| 对象 | 属性(数据)+方法(操作)+对象ID(唯一标识) | 
| 类 | 实体类、控制类、边界类 | 
| 继承与泛化 | 复用机制 | 
| 封装 | 隐藏对象属性和实现细节,仅对外公开接口 | 
| 多态 | 不同对象收到同样的消息产生不同的结果 | 
| 接口 | 一种特殊的类,他只有方法定义没有实现 | 
| 重载 | 一个类可以有多个同名而参数类型不同的方法 | 
| 模板类 | 用模板的形式定义 | 
| 消息和消息通信 | 消息是异步通信的 | 
面向对象七大原则
- 单一职责原则:设计目的单一的类
 - 开放-封闭原则:对扩展开放,对修改封闭
 - 李氏(Liskov)替换原则:子类可以替换父类
 - 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
 - 接口隔离原则:使用多个专门的接口比使用单一的总接口要好
 - 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
 - 迪米特原则(最少知识法则):一个对象应当对其对象有尽可能少的了解
 
2.UML

2.1用例图***
- 包含:能够提取公共用例
 - 扩展:分为一个基本用例和多个扩展用例(分支)
 - 泛化:子用例继承了父用例所有的结构、行为和关系
 
 
2.2类图与对象图***
类图:描述一组类、接口、协作和他们之间的关系。静态视图
对象图:描述一组对象及他们之间的关系。静态快照
- 多重度:一个集合中的对象对应另一个集合中的对象,一对一,多对一,多对多
 

| 关系类型 | 类 | 类 | 连线 | 箭头 | 
|---|---|---|---|---|
| 关联关系 | A | B | 直线 | |
| 依赖关系 | A | B | 虚线 | 实心 | 
| 泛化 | 子类 | 父类 | 直线 | 空心 | 
| 聚合 | 部分类 | 整体类 | 直线 | 菱形实心 | 
| 组合–共存亡 | 部分 | 整体 | 直线 | 菱形空心 | 
| 实现 | A | B | 虚线 | 空心 | 
2.3顺序图
也称序列图SD(Sequence Diagram),是一种交互图,专注于动态视图,强调消息的时间次序。

2.4状态图
由状态、转移、事件和活动组成

2.5活动图
动态图,有控制流和数据流,按角色划分
 

2.6通信图
交互图,强调时序,对象之间的组织结构

2.7构件图

2.8部署图

3.设计模式 ***

3.1创建型模式
- 工厂方法–factory method–动态生产对象
 - 抽象工厂–abstract factory–生产成系列对象
 - 原型–prototype–克隆对象
 - 单例–singleton–单个实例
 - 构建器–builder–复杂对象构造
 
 
3.1.1工厂模式–Creator
定义接口,实例化子类
 
3.1.2抽象工厂–abstract
提供一个接口,创建一系列相关联或相互依赖的对象
 
3.1.3原型模式–Protocoltype

3.1.4单例模式–singleton
一个类只有一个实例
 
3.1.5生成器模式–builder
 
3.2结构型模式
- 适配器–adapter–转换接口
 - 桥接–bridge–继承树拆分
 - 组合–composite–树形目录结构
 - 装饰–decorator–附加职责
 - 外观–facade–对外统一接口
 - 享元–flyweight–文章共享文字对象
 - 代理–Proxy
 
 
3.3行为型模式
- 职责链–chain of responsibility–传递职责
 - 命令–command–日志记录,可撤销
 - 解释器–interpreter–虚拟机的机制
 - 迭代器–iterator–数据库数据集
 - 中介者–mediator–不直接引用
 

- 备忘录–memento
 - 观察者–observer–联动
 - 状态–state–状态变成类
 - 策略–strategy–多方案切换
 - 模板方法–template method
 - 访问者 visitor
 
 
模板方法–template method
- 访问者 visitor
 











