# Query
**Repository Path**: liu-siyuan888/query
## Basic Information
- **Project Name**: Query
- **Description**: C++ Primer 第五版 第 562 页起的单词查询程序。
做了精简处理并添加了大量中文注释,便于阅读
- **Primary Language**: C++
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-09-25
- **Last Updated**: 2023-10-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# C++ 面向对象程序设计
**面向对象**:一种编程范式,把程序中的实体视为相互作用的一组实体,每个对象都有自己的属性和方法
+ 面向对象的分析(OOA):分析需求
+ 面向对象的设计(OOD):将需求转化为类、数据成员、成员函数,设计类与类之间的关系
+ UML 语言:统一建模语言,常用的图有 类图(类之间的静态关系)、序列图(函数的执行顺序)
+ 面向对象的编程(OOP):实现代码
### 1 类与类之间的关系
**类与类之间的关系**:继承(泛化)> 组合 > 聚合 > 关联 > 依赖,耦合性
+ 继承:A is B ,A 派生类,B 基类
+ 关联:A has B,双方都不负责销毁对方,拥有指针或引用
+ 聚合:A has B,拥有者不负责销毁对方,拥有指针或引用
+ 组合:A has B,拥有者负责销毁对方,拥有对象
+ 依赖:A use B,B 作为 A 的成员函数参数、B 作为 A 的成员函数的局部变量、A 调用 B 的静态方法

### 2 面向对象的设计原则
要求:低耦合(类与类、模块与模块之间),高内聚(类内、模块内)
+ 单一职责原则:一个类最好只做一件事情,例如 sort 函数单独写类外面
+ **开闭原则**:对扩展开放、对修改关闭。例如抽象类的派生类
+ **里氏替换原则**:多态、自己类有自己的方法、子类不能隐藏父类的方法
+ 接口分离原则:使用多个小的专门接口
+ **依赖倒置原则**:面向接口编程,依赖于抽象
+ 最小知识原则:降低类与类之间的耦合程度
+ 组合复用原则:尽量采用组合聚合的方式而非覆盖
### 3 面向对象实战——文本查询类
#### 3.1 功能介绍

#### 3.2 继承图

#### 3.3 StarUML 图
