C++提高学习笔记

C++提高学习笔记

面向对象设计的基本概念

面向对象的分析(OOA):解析出需求,需要做什么
面向对象的设计(OOD):需要设计哪些类,类中有哪些数据成员,哪些成员函数,类与类之间的关系
面向对象的变成(OOP): 将需求与设计转换为代码

UML语言:同一建模语言

类与类之间的关系

类与类之间的关系

🌈 总结:

  1. 继承是垂直关系,其他四种是水平关系
  2. 耦合程度:依赖 < 关联 < 聚合 < 组合 < 继承
  3. 从语义来看,继承is,依赖use,关联、聚合、组合has
  4. 依赖关系主要在成员函数,其他其中主要是在数据成员的角度

面向对象的设计原则

设计的目标:低耦合、高内聚
耦合:强调的是类与类之间、模块与模块之间的关系。
内聚:强调的是类的内部或者模块内部的关系

单一职责原则

核心思想:一个类最好只做一件事,只有一个引起它变化的原因

开闭原则

核心思想:对抽象编程,而不对具体编程,因为抽象相对稳定

里氏替换原则

核心思想:派生类必须能够替换其基类

  • 派生类实现了基类的抽象方法
  • 派生类可以增加新的个性/功能
  • 派生类不能覆盖其基类中的非虚函数(c++中的隐藏,基类和派生类调用同名的函数,基类和派生类执行的函数不同)(基类与派生类中对于非虚函数而言,不要同名)

接口分离原则

核心思想:使用多个小的专门的接口,而不要使用一个大的总接口

依赖倒置原则

核心思想:依赖于抽象(抽象是稳定的,具体是变化的)

在大多数情况下,开闭原则、里氏代换原则和依赖倒置原则会同时出现,开闭原则是目标,里氏代换原则是基础,依赖倒置原则是手段

最少知道原则

核心思想:减少类与类、模块与模块之间的耦合程度

组合复用原则

核心思想:使用关联、聚合取代继承关系

设计模式

解决特定问题的一系列套路,有一定的普遍性。它是一套被反复使用、多数人知晓的、代码设计经验的总结。它可以提高代码的可重用性、代码的可读性和代码的可靠性以及可扩展性。

简单工厂

简单工厂模式

  • 违反了单一职责原则
  • 违反了开放闭合原则
  • 违反了依赖倒置原则

工厂模式

会为每个产品创建对应的工厂,工厂的数量会急剧上升
工厂模式类图

抽象工厂

将生产产品的接口放在工厂的抽象类中,派生类在继承的时候,就会继承其中的接口

posted @ 2024-04-02 22:21  Rabbit2001  阅读(13)  评论(0编辑  收藏  举报