# 设计原则与术语速查 > **用途**:考前快速回顾关键设计原则和术语 --- ## 🔷 SOLID五大原则 | 原则 | 全称 | 含义 | |------|------|------| | **S** | 单一职责原则 | 一个类只负责一件事 | | **O** | 开闭原则 | 对扩展开放,对修改关闭 | | **L** | 里氏替换原则 | 子类可以替换父类而不出问题 | | **I** | 接口隔离原则 | 接口要小而精,不要大而全 | | **D** | 依赖倒置原则 | 依赖抽象(接口),不依赖具体实现 | --- ## 🔷 包设计四大原则 | 缩写 | 原则 | 含义 | |------|------|------| | **REP** | 重用等价原则 | 可一起复用的类放一个包 | | **CCP** | 共同闭包原则 | 需要同时修改的类放一个包 | | **CRP** | 共同重用原则 | 不会一起用的类分开放 | | **ADP** | 非循环依赖原则 | 包之间的依赖不能形成环 | --- ## 🔷 其他重要原则 | 原则 | 含义 | |------|------| | **高内聚低耦合** | 包内关系紧密(内聚),包间关系稀疏(耦合) | | **迪米特法则** | 最少知识原则——只跟"朋友"说话 | | **组合优于继承** | 能用组合实现的效果,别用继承(更灵活) | --- ## 🔷 数据库三大范式 | 范式 | 要求 | |------|------| | **1NF** | 字段值不可再分(原子性) | | **2NF** | 非主键字段完全依赖主键(消除部分依赖) | | **3NF** | 非主键字段不传递依赖主键(消除传递依赖) | --- ## 🔷 对象模型→数据模型映射速查 | 对象模型 | 数据模型 | |----------|----------| | 类 | 表 | | 属性 | 字段(列) | | 操作 | 触发器 + 存储过程 | | 1对0..*关联 | 多的一端加外键 | | *对*关联 | 新建关联表 | | 泛化关系 | 三种方案(父子各建表/只建子表/只建父表) | --- ## 🔷 需求工程术语速查 | 术语 | 定义 | |------|------| | **软件需求** | 用户对系统在功能、行为、性能、约束方面的期望 | | **业务需求** | 组织的高层次目标 | | **用户需求** | 用户使用系统完成的任务 | | **功能需求** | 系统必须实现的功能 | | **非功能需求** | 系统的质量属性和约束 | | **SRS** | 软件需求规格说明书 | | **需求基线** | 评审通过、双方承诺的需求版本 | | **需求跟踪矩阵(RTM)** | 记录需求与设计、代码、测试对应关系的表 | | **需求变更控制** | 变更申请→审批→修改→重新确认的流程 | --- ## 🔷 面向对象核心概念 | 概念 | 含义 | |------|------| | **封装** | 隐藏内部实现,只暴露接口 | | **继承** | 子类自动拥有父类的属性和方法 | | **多态** | 同一操作在不同对象上有不同行为 | | **抽象** | 提取共性,忽略细节 | --- ## 🔷 关联关系多重性速记 | 符号 | 含义 | |------|------| | `1` | 恰好1个 | | `0..1` | 0个或1个 | | `*` 或 `0..*` | 0个或多个 | | `1..*` | 至少1个 | | `n` | 恰好n个 | --- ## 🔷 常见设计模式速查 | 模式 | 类型 | 解决什么问题 | |------|------|-------------| | **策略模式** | 行为型 | 同一功能有多种算法实现,可动态切换 | | **工厂方法** | 创建型 | 创建对象时不指定具体类 | | **组合模式** | 结构型 | 统一处理整体和部分(如文件系统目录和文件) | | **DAO模式** | 数据访问 | 分离数据访问逻辑和业务逻辑 | | **MVC模式** | 架构型 | 分离界面(View)、逻辑(Controller)、数据(Model) |