C++编程思想第二版第二卷笔记5——设计模式

本文探讨了设计模式的核心原则,强调将变化与稳定因素分离的重要性。介绍了GoF的23种设计模式分类,并详细解析了几种典型模式,如单例、工厂、建造者、观察者等。同时讨论了多重分派等高级概念。

设计的原则是将易变的元素与稳定的元素分开。separate things that change from things that stay the same.

设计模式的目标是把变化封装起来。The goal of design patterns is to encapsulate change.

要着手构思一个设计模式之前,扪心自问:“这里真的需要使用继承吗?使用继承的话有什么好处?”

GoF23个设计模式分为三类:创建型(creational)、结构型(structural)、行为型(behavioral)。

Fonctor:将fonction包装到类中。

Singleton:只能有一个对象的类。

Command:将函数行为与调用地点分离。

使用代理的四种场合:

1. 远程代理。

2. 虚拟代理。提供“懒惰初始化”,主要用于开销庞大的对象,可以只在需要这样的对象时才构建对象。

3. 保护性代理。用于保护代理对象,避免用户取得完全访问权。

4. Smart reference。在访问代理对象时附加一些行为。引用计数是一个例子:记录一个特定对象被引用的次数,用于应用写时复制(copy-on-write)并防止对象混淆。

FactoryBuilder的主要区别是:Builder生成的是一个整体的各个部件,而Factory生成的是不同的整体。

Observer:解决某对象改变状态时,一批对象需要更新的问题。

Multiple dispatching多重分派:解决多重对象相互交互情况下的分派问题,如不同数据类型的加、减、乘、除等运算。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值