- 新增现代 C++ 教程的 Preface 章节,包括英文和中文版本 - 添加 C++ Primer 练习代码 - 新增 Learn C++ 教程的 C++ 开发简介章节 - 添加头文件解析文档 - 更新 mkdocs.yml,包含新教程的目录结构 - 修改项目设置,使用 Python 3.10环境
59 lines
1.3 KiB
Markdown
59 lines
1.3 KiB
Markdown
---
|
|
sort: 1
|
|
---
|
|
|
|
# C++设计模式
|
|
|
|
## 目标
|
|
- 理解松耦合设计思想
|
|
- 掌握面向对象设计原则
|
|
- 掌握重构技法改善设计
|
|
- 掌握GOF 核心设计模式
|
|
|
|
## 从面向对象谈起
|
|
|
|
### 底层思维:向下,如何把握机器底层从微观理解对象构造
|
|
|
|
- 语言构造
|
|
- 编译转换
|
|
- 内存模型
|
|
- 运行时机制
|
|
|
|
### 抽象思维:向上,如何将我们的周围世界抽象为程序代码
|
|
|
|
- 面向对象
|
|
- 组件封装
|
|
- 设计模式
|
|
- 架构模式
|
|
|
|
## 深入理解面向对象
|
|
|
|
### 向下:
|
|
深入理解三大面向对象机制
|
|
|
|
- 封装,隐藏内部实现
|
|
- 继承,复用现有代码
|
|
- 多态,改写对象行为
|
|
|
|
### 向上:
|
|
深刻把握面向对象机制所带来的抽象意义,理解如何使用
|
|
这些机制来表达现实世界,掌握什么是“好的面向对象设计”
|
|
|
|
## 如何解决复杂性?
|
|
|
|
### 分解
|
|
|
|
人们面对复杂性有一个常见的做法:即分而治之,将大问题分
|
|
解为多个小问题,将复杂问题分解为多个简单问题。
|
|
|
|
### 抽象
|
|
|
|
更高层次来讲,人们处理复杂性有一个通用的技术,即抽象。
|
|
由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,
|
|
而去处理泛化和理想化了的对象模型。
|
|
|
|
## 软件设计的目标
|
|
|
|
什么是好的软件设计?软件设计的金科玉律:
|
|
|
|
**复用!** |