---
sort: 1
---

# C++设计模式

## 目标
- 理解松耦合设计思想
- 掌握面向对象设计原则
- 掌握重构技法改善设计
- 掌握GOF 核心设计模式

## 从面向对象谈起

### 底层思维：向下，如何把握机器底层从微观理解对象构造

-  语言构造
- 编译转换
- 内存模型
- 运行时机制

### 抽象思维：向上，如何将我们的周围世界抽象为程序代码

- 面向对象
- 组件封装
- 设计模式
- 架构模式

## 深入理解面向对象

### 向下：
深入理解三大面向对象机制

- 封装，隐藏内部实现
- 继承，复用现有代码
- 多态，改写对象行为

### 向上：
深刻把握面向对象机制所带来的抽象意义，理解如何使用
这些机制来表达现实世界，掌握什么是“好的面向对象设计”

## 如何解决复杂性？

### 分解

人们面对复杂性有一个常见的做法：即分而治之，将大问题分
解为多个小问题，将复杂问题分解为多个简单问题。

### 抽象

更高层次来讲，人们处理复杂性有一个通用的技术，即抽象。
由于不能掌握全部的复杂对象，我们选择忽视它的非本质细节，
而去处理泛化和理想化了的对象模型。

## 软件设计的目标

什么是好的软件设计？软件设计的金科玉律：

**复用！**