| c++模式开发之bridge | |
| 2002-07-29· · ··com集中营 | |
| 一、功能 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 二、结构图
三、示例代码
四、实例 (1)创建可以在x window system和ibm的presentation manager系统中都可以使用的窗口。(书上的例子)
bridge的魅力在于抽象和实现之间是松散的关系,它们之间可以进行随意组合。如上图中,就有iconwindow+xwindowimp、transientwindow+xwindowimp、iconwindow+pmwindowimp、transientwindow+pmwindowimp四种组合。 |
| c++模式设计之builder | |
| 2002-07-30· · ··com集中营 | |
| 一、功能 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 二、结构图
各类之间的交互关系如下图所示:
三、示例代码
四、实例 (1)例子一。如下图所示:
上图的功能是是把一个rtf文件转换为多种正文格式。rtfreader进行语法分析,然后将所有的token串逐一转换。可见builder就是一步步地把各个部分组装为一个整体。它封闭了组装的方法,组装出来的对象也大相径庭。 |
| c++设计模式之prototype | |
| 2002-08-01· · ··com集中营 | |
| 一、功能 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 二、结构图
三、优缺点 优点:复制自身。客户不知道需要对象的实际类型,只需知道它的抽象基类即可。(即有继承树的情况) 四、示例代码
五、实例 在一个图形编辑器中,每一个图形元素,如线、圆、文字等都应该支持拷贝操作,即点中图形,按下ctrl+c,再按下ctrl+v后就会复制一个新的图形。显然这是一种clone操作。所以在每个从graphic派生出的图形子类都应运用prototype模式,加上clone操作。 |
| c++设计模式之factory method | |
| 2002-08-05· · ··com集中营 | |
| 一、功能 定义一个用于创建对象的接口,让子类决定实例化哪一个类。factory method 使一个类的实例化延迟到其子类。 二、结构图
三、实现 (1)在某些情况下,比如仅仅为了创建适当的product对象而派生新的creator子类,并且创建不同product的方法一致时,可以考虑用模板代替继承。如:
本文关键:C++设计模式
|