# 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 基类 image-20231011223308051 + 关联:A has B,双方都不负责销毁对方,拥有指针或引用 image-20231011223327739 image-20231011223352478 + 聚合:A has B,拥有者不负责销毁对方,拥有指针或引用 image-20231011223410833 + 组合:A has B,拥有者负责销毁对方,拥有对象 image-20231011223425760 + 依赖:A use B,B 作为 A 的成员函数参数、B 作为 A 的成员函数的局部变量、A 调用 B 的静态方法 ![image-20231011223440434](https://cancanneedpicture.oss-cn-guangzhou.aliyuncs.com/TyporaPic/202310112234460.png) ### 2 面向对象的设计原则 要求:低耦合(类与类、模块与模块之间),高内聚(类内、模块内) + 单一职责原则:一个类最好只做一件事情,例如 sort 函数单独写类外面 + **开闭原则**:对扩展开放、对修改关闭。例如抽象类的派生类 + **里氏替换原则**:多态、自己类有自己的方法、子类不能隐藏父类的方法 + 接口分离原则:使用多个小的专门接口 + **依赖倒置原则**:面向接口编程,依赖于抽象 + 最小知识原则:降低类与类之间的耦合程度 + 组合复用原则:尽量采用组合聚合的方式而非覆盖 ### 3 面向对象实战——文本查询类 #### 3.1 功能介绍 ![image-20231006105810452](https://cancanneedpicture.oss-cn-guangzhou.aliyuncs.com/TyporaPic/202310061058539.png) #### 3.2 继承图 ![image-20231006110121141](https://cancanneedpicture.oss-cn-guangzhou.aliyuncs.com/TyporaPic/202310061101225.png) #### 3.3 StarUML 图 ![image-20231006105648399](https://cancanneedpicture.oss-cn-guangzhou.aliyuncs.com/TyporaPic/202310061056510.png)