Tsai笔记:C++设计模式学习(1)—— 设计模式介绍及分类

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:53   2924   0

Tsai笔记:C++设计模式学习(1)—— 设计模式介绍及分类

设计模式的系列笔记链接如下:

Tsai笔记:C++设计模式学习(1)—— 设计模式介绍及分类

Tsai笔记:C++设计模式学习(2)—— 单例模式(Singleton)

Tsai笔记:C++设计模式学习(3)—— 享元模式(Flyweight)

Tsai笔记:C++设计模式学习(4)—— 工厂模式方法(Factory Method)

Tsai笔记:C++设计模式学习(5)—— 抽象工厂模式(Abstract Factory)

Tsai笔记:C++设计模式学习(6)—— 原型模式(ProtoType)

Tsai笔记:C++设计模式学习(7)—— 构建器(Builder)

一、什么是设计模式

“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。 ——Christopher Alexander

二、复杂性的根本原因及如何解决复杂性

1、复杂性的根本原因

a、客户需求的变化 b、技术平台的变化 c、开发团队的变化 d、市场环境的变化分解 e、。。。

2、如何解决复杂性

a、分解:
人们面对复杂性有一个常见的做法:即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题。
b、抽象:
更高层次来讲,人们处理复杂性有一个通用的技术,即抽象。由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛化和理想化了的对象模型。

三、设计模式目标

实现复用!!!!!!

四、深入理解面向对象

a、向下:深入理解三大面向对象机制
封装,隐藏内部实现
继承,复用现有代码
多态,改写对象行为
b、向上:深刻把握面向对象机制所带来的抽象意义,理解如何使用这些机制来表达现实世界,掌握什么是“好的面向对象设计”

五、从封装变化角度对模式分类

对象性能单一职责状态变化行为变化领域问题
SingletonBridgeStateCommandInterpreter
FlyweightDecoratorMementoVisitor
组件协作接口隔离对象创建数据结构
Template MethodFaadeFactory MethodComposite
Observer / EventProxyAbstract FactoryIterator
StrategyMediatorPrototypeChain of Resposibility
AdapterBuilderDecorator

六、重构关键技法

静态 ------> 动态
早绑定 ------> 晚绑定
继承 ------> 组合
编译时依赖 ------> 运行时依赖
紧耦合 ------> 松耦合

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP