设计模式C++学习笔记之二十(完结篇 & 面向对象原则)设计模式C++实例下载

Prototype(原型模式)

20.1.解释

概念:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

main(),客户

ICloneableNow,只有一个接口Clone

CMail,实体类

CAdvTemplate,

说明:通过克隆的方式很快速的得到一个新的对象,然后稍微修改就是一个全新的对象了,节省了重新创建对象对资源的大量占用。

Mediator(中介者模式)

21.1.解释

概念:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

main(),客户

IAbstractMediator,中介者接口

CMediatorNow,中介者实现类

IAbstractColleague,接口

CPurchase,需要协作的类之一

CSale,需要协作的类之二

CStock,需要协作的类之三

说明:CMediatorNow来组织IAbstractColleague接口的相互调用关系,客户main()直接访问CMediatorNow的接口进行业务处理。CMediatorNow很好的封装了业务,实现了高内聚。

Interpreter(解释器模式)

22.1.解释

概念:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

最简单的例子是表达式运算。

Flyweight(亨元模式)

23.1.解释

概念:运用共享技术有效地支持大量细粒度的对象。

Memento(备忘录模式)

24.1.解释

概念:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

Memento(备忘录)模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

面向对象设计原则

25.1.SRP(单一职责原则)

Single Responsibility Priciple

有且只有一个原因引起类的变更。

There should never be more than one reason for a class to change.

25.2.LSP(里氏替换原则)

Liskov Substitution Priciple

子类必须完全实现父类接口,在系统中完全可以用子类替换父类,即子类型必须能够替换它们的基类型。

25.3.DIP(依赖倒转原则)

Dependency Inversion Priciple

1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象。

2. 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。

25.4.ISP(接口隔离原则)

Interface Segregation Priciple

不能强迫用户去依赖那些他们不使用的接口。

Clients should not be forced to depend upon interfaces that they do not use.

说明:接口的设计应该遵循最小接口原则,不要把用户不使用的方法塞进同一个接口里。使用多个专门的接口比使用单一的总接口总要好。

25.5.LOD(迪米特原则)

Low of Demeter Priciple

只和朋友类交流,出现在成员变量,函数输入输出参数中的类,是朋友类。强调类之间的松散耦合。

25.6.OCP(开放-封闭原则)

Open Close Principle

对扩展开放,对修改封闭。

_

附:设计模式C++代码VS解决方案,http://files.cnblogs.com/wanggary/SolutionPattern.zip

 

 

本文转自:http://www.cnblogs.com/wanggary/archive/2011/04/21/2024295.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 序言 前言 读者指南 第 1 章 引言 1 1.1 什么是设计模式 2 1.2 Smalltalk MVC 中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象接口 9 1.6.4 描述对象的实现 10 1.6.5 运用复用机制 13 1.6.6 关联运行时刻和编译时刻的结构 15 1.6.7 设计应支持变化 16 1.7 怎样选择设计模式 19 1.8 怎样使用设计模式 20 第 2 章 实例研究:设计一个文档编辑器 22 2.1 设计问题 23 2.2 文档结构 23 2.2.1 递归组合 24 2.2.2 图元 25 2.2.3 组合模式 272.3 格式化 27 2.3.1 封装格式化算法 27 2.3.2 Compositor 和 Composition 27 2.3.3 策略模式 29 2.4 修饰用户界面 29 2.4.1 透明围栏 29 2.4.2 Monoglyph 30 2.4.3 Decorator 模式 32 2.5 支持多种视感标准 32 2.5.1 对象创建的抽象 32 2.5.2 工厂类和产品类 33 2.5.3 Abstract Factory 模式 35 2.6 支持多种窗口系统 35 2.6.1 我们是否可以使用 Abstract Factory 模式 35 2.6.2 封装实现依赖关系 35 2.6.3 Window 和 WindowImp 37 2.6.4 Bridge 模式 40 2.7 用户操作 40 2.7.1 封装一个请求 41 2.7.2 Command 类及其子类 41 2.7.3 撤消和重做 42 2.7.4 命令历史记录 42 2.7.5 Command 模式 44 2.8 拼写检查和断字处理 44 2.8.1 访问分散的信息 44 2.8.2 封装访问和遍历 45 2.8.3 Iterator 类及其子类 46 2.8.4 Iterator 模式 48 2.8.5 遍历和遍历过程中的动作 48 2.8.6 封装分析 48 2.8.7 Visitor 类及其子类 51 2.8.8 Visitor 模式 52 2.9 小结 53 第 3 章 创建型模式 54 3.1 Abstract Factory(抽象工厂)—对象创建型模式 57 3.2 Builder(生成器)—对象创建型模式 633.3 Factory Method(工厂方法)—对象创建型模式 70 3.4 Prototype(原型)—对象创建型模式 87 3.5 Singleton(单件)—对象创建型模式 84 3.6 创建型模式的讨论 89 第 4 章 结构型模式 91 4.1 Adapter(适配器)—类对象结构型模式 92 4.2 Bridge(桥接)—对象结构型模式 100 4.3 Composite(组成)—对象结构型模式 107 4.4 Decorator(装饰)—对象结构型模式 115 4.5 FACADE(外观)—对象结构型模式 121 4.6 Flyweight(享元)—对象结构型模式 128 4.7 Proxy(代理)—对象结构型模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter 与 Bridge 144 4.8.2 Composite、 Decorator 与 Proxy 145 第 5 章 行为模式 147 5.1 CHAIN OF RESPONSIBIL ITY(职责链)—对象行为型模式 147 5.2 COMMAND(命令)—对象行为型模式 154 5.3 INTERPRETER(解释器)—类行为型模式 162 5.4 ITERATOR(迭代器)—对象行为型模式 171 5.5 MEDIATOR(中介者)—对象行为型模式 181 5.6 MEMENTO(备忘录)—对象行为型模式 188 5.7 OBSERVER(观察者)—对象行为型模式 194 5.8 STATE(状态)—对象行为型模式 201 5.9 STRATEGY(策略)—对象行为型模式 208 5.10 TEMPLATE METHOD(模板方法)—类行为型模式 214 5.11 VISITOR(访问者)—对象行为型模式 218 5.12 行为模式的讨论 228 5.12 1 封装变化 228 5.12.2 对象作为参数 228 5.12.3 通信应该被封装还是被分布 229 5.12.4 对发送者和接收者解耦 229 5.12.5 总结 231 第 6 章 结论 232 6.1 设计模式将带来什么 2326.2 一套通用的设计词汇 23

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值