这是一本非常实用的VB设计模式专著。书中从使用VB进行面向对象编程的角度,讲述如何在设计模式思想指导下用VB.NET和VB6编写应用程序。\r\n 本书首先概述了VB面向对象编程的概念和方法,然后讨论了23种设计模式,每种模式都通过至少一个完整的VB程序来说明,以帮助读者建立设计模式的思想。这种方式使得设计模式的概念容易掌握,也更容易理解设计模式的本质及目的。读过本书,VB程序员可以迅速提高编程水平,并从设计模式中受益。\r\n 本书可以为设计比较复杂的VB程序提供指导,既可以作为深入学习VB编程的教科书,也可作为探讨软件设计模式研究领域人员的参考书。
第I部分 VB面向对象程序设计\r\n\r\n第1章 设计模式概述 \r\n\r\n1.1 定义设计模式 \r\n1.2 学习过程 \r\n1.3 学习设计模式 \r\n1.4 评论面向对象方法 \r\n1.5 VB设计模式 \r\n1.6 本书组织 \r\n\r\n第2章 UML图 \r\n\r\n2.1 继承 \r\n2.2 接口 \r\n2.3 组合 \r\n2.4 注释 \r\n2.5 基于WithClass的UML图 \r\n2.6 Visual Basic工程文件 \r\n\r\n第3章 在VB中使用类和对象 \r\n\r\n3.1 一个简单的温度换算程序 \r\n3.2 构建一个温度类 \r\n3.2.1 换算到开氏温标 \r\n3.3 在Temperature类作决定 \r\n3.4 在类中进行数据的格式化和值转换\r\n3.4.1 处理不合理值 \r\n3.5 一个字符串的分割类 \r\n3.6 类对象 \r\n3.6.1 类包含\r\n3.7 类初始化\r\n3.8 类和属性\r\n3.9 另一个接口示例--伏特计 \r\n3.10 一个vbFile类 \r\n3.11 Visual Basic程序设计风格 \r\n3.12 小结 \r\n\r\n第4章 面向对象的程序设计 \r\n\r\n4.1 构建VB对象 \r\n4.2 产生一个对象实例 \r\n4.3 一个用VB实现的测量程序 \r\n4.4 对象中的方法 \r\n4.5 变量 \r\n4.6 参数传值和传址 \r\n4.7 面向对象程序设计中的术语 \r\n\r\n第5章 创建自己的控件 \r\n\r\n5.1 一个激活的文本 \r\n5.1.1 调整用户控件大小 \r\n5.2 测试HiText控件 \r\n5.3 在用户控件中增加属性和方法 \r\n5.4 编译一个用户控件 \r\n5.5 小结 \r\n5.6 光盘中的程序 \r\n\r\n第6章 继承和接口 \r\n\r\n6.1 接口 \r\n6.2 一个投资模拟器 \r\n6.3 编写一个模拟器 \r\n6.4 用于接口使用的指示器 \r\n6.5 重新使用共同的方法 \r\n6.6 隐藏接口 \r\n6.7 小结 \r\n6.8 光盘中的程序 \r\n\r\n第7章 VB.NET简介 \r\n\r\n7.1 VB.NET中新的语法 \r\n7.1.1 改进的函数语法 \r\n7.2 变量声明和作用域 \r\n7.2.1 VB.NET中的对象 \r\n7.3 编译选择 \r\n7.3.1 VB.NET中的数值型变量 \r\n7.4 VB6和VB.NET中的属性 \r\n7.5 快捷等号语法 \r\n7.6 管理语言和垃圾回收 \r\n7.7 VB.NET中的类 \r\n7.8 构建一个VB7应用 \r\n7.9 VB.NET最简单的窗口程序 \r\n7.10 继承 \r\n7.11 构造函数 \r\n7.12 VB.NET中的图画 \r\n7.13 工具标签和鼠标移动键 \r\n7.14 重载 \r\n7.15 继承 \r\n7.16 名字空间 \r\n7.16.1 从长方形中产生一个正方形\r\n7.17 Public,Private和Protected\r\n7.18 在导出类中重载方法 \r\n7.19 重载与隐蔽 \r\n7.20 重载窗口控件\r\n7.21 接口 \r\n7.22 小结 \r\n7.23 光盘中的程序 \r\n\r\n第8章 VB.NET中的数组、文件和异常 \r\n\r\n8.1 数组 \r\n8.2 集合对象 \r\n8.2.1 数组列表\r\n8.2.2 Hashtable \r\n8.2.3 SortedList\r\n8.3 异常 \r\n8.4 多重异常 \r\n8.5 抛出异常 \r\n8.6 文件处理 \r\n8.6.1 File对象\r\n8.6.2 读一个文本文件 \r\n8.6.3 写一个文本文件 \r\n8.7 在文件处理中使用异常 \r\n8.8 测试文件结束 \r\n8.9 FileInfo类 \r\n8.10 vbFile类 \r\n8.11 光盘中的程序 \r\n\r\n第Ⅱ部分 生成模式\r\n\r\n第9章 简单工厂模式\r\n\r\n9.1 一个简单工厂如何工作 \r\n9.2 代码片段 \r\n9.3 两个导出类 \r\n9.4 构建简单工厂\r\n9.4.1 使用工厂 \r\n9.5 用VB.NET编写工厂模式 \r\n9.6 使用数学计算的工厂模式\r\n9.7 光盘中的程序 \r\n\r\n第10章 工厂方法模式\r\n\r\n10.1 Swimmer类 \r\n10.2 Events类 \r\n10.3 直接筛选 \r\n10.3.1 交叉筛选\r\n10.4 我们的选拔程序 \r\n10.5 其他的类工厂 \r\n10.6 用VB7实现的选拔程序 \r\n10.7 什么时候使用工厂方法\r\n10.8 光盘上的程序 \r\n\r\n第11章 抽象工厂模式 \r\n\r\n11.1 一个花卉工厂 \r\n11.2 用户接口如何工作 \r\n11.3 用VB7实现一个抽象工厂 \r\n11.3.1 PictureBox框 \r\n11.3.2 处理单选按钮和按钮事件 \r\n11.4 增加更多的类 \r\n11.5 抽象工厂评价 \r\n11.6 光盘中的程序 \r\n\r\n第12章 单一类模式 \r\n\r\n12.1 使用静态方法产生单一类 \r\n12.2 捕获错误 \r\n12.3 提供单一类的全局访问点 \r\n12.4 MSComm控件作为单一类 \r\n12.4.1 可用的串口 \r\n12.5 用VB.NET实现单一类 \r\n12.5.1 使用私有的构造函数\r\n12.5.2 VB7实现的单一类中的错误处理 \r\n12.6 一个VB.NET实现的SpoolDemo程序 \r\n12.7 全局访问点 \r\n12.8 单一类模式其他结论 \r\n12.9 光盘上的程序 \r\n\r\n第13章 构造器模式 \r\n\r\n13.1 一个投资跟踪程序 \r\n13.2 调用构造器 \r\n13.3 列表框构造器\r\n13.4 复选框构造器\r\n13.5 用VB.NET实现构造器 \r\n13.5.1 股票类工厂 \r\n13.5.2 复选框类 \r\n13.5.3 列表框类 \r\n13.6 在列表框中使用下标集合 \r\n13.6.1 最终选择 \r\n13.7 小结 \r\n13.8 光盘中的程序 \r\n\r\n第14章 原型模式 \r\n\r\n14.1 VB6中的克隆 \r\n14.2 使用原型 \r\n14.3 使用原型模式 \r\n14.3.1 在子类中增加方法 \r\n14.3.2 具有相同接口的不同类 \r\n14.4 原型管理器 \r\n14.5 用VB7编写原型 \r\n14.6 小结 \r\n14.7 光盘中的程序 \r\n14.8 生成模式总结 \r\n\r\n第Ⅲ部分 结构模式\r\n\r\n第15章 适配器模式\r\n\r\n15.1 在列表中移动数据 \r\n15.2 使用MSFlexGrid \r\n15.3 使用TreeView \r\n15.3.1 对象适配器 \r\n15.4 在VB7中使用适配器 \r\n15.5 VB.NET的TreeView适配器 \r\n15.6 采用DataGrid控件 \r\n15.7 类适配器 \r\n15.8 两路适配器\r\n15.9 在VB.NET中实现对象和类适配器 \r\n15.10 可插入的适配器 \r\n15.11 在VB中的适配器 \r\n15.12 光盘中的程序 \r\n\r\n第16章 桥模式 \r\n\r\n16.1 visList类 \r\n16.2 类关系图 \r\n16.3 桥模式的扩展 \r\n16.4 ActiveX 控件作为桥 \r\n16.5 用VB.NET实现桥模式 \r\n16.5.1 ListBox的visList类\r\n16.5.2 Grid的visList类 \r\n16.5.3 导入数据 \r\n16.6 改变数据格式\r\n16.7 小结 \r\n16.8 光盘中的程序 \r\n\r\n第17章 组合模式 \r\n\r\n17.1 一个组合的实现 \r\n17.2 计算工资 \r\n17.3 员工类 \r\n17.4 下标类 \r\n17.5 Boss类 \r\n17.6 构建员工树 \r\n17.7 自提升 \r\n17.8 双向链表\r\n17.9 小结 \r\n17.10 一个简单组合 \r\n17.11 VB中的组合 \r\n17.12 VB.NET中的组合 \r\n17.12.1 枚举器 \r\n17.12.2 Boss构造函数多态 \r\n17.13 其他实现条款 \r\n17.14 光盘中的程序 \r\n\r\n第18章 修饰模式 \r\n\r\n18.1 CoolButton按钮的修饰 \r\n18.2 使用Decorator \r\n18.3 将ActiveX控件作为Decorator使用 \r\n18.4 VB.NET中的Decorator \r\n18.5 不可见的Decorator \r\n18.6 修饰、适配和组合模式 \r\n18.7 小结 \r\n18.8 光盘中的程序 \r\n\r\n第19章 伪模式 \r\n\r\n19.1 数据库是什么 \r\n19.2 从数据库中获得数据 \r\n19.3 数据库的种类 \r\n19.4 ODBC \r\n19.5 微软的数据库连接策略 \r\n19.6 数据库的结构 \r\n19.6.1 DBase类 \r\n19.7 建立Fa?ade类 \r\n19.7.1 Stores类 \r\n19.8 建立Stores和Foods表 \r\n19.9 建立Price表 \r\n19.9.1 建立价格查询 \r\n19.10 小结 \r\n19.11 在VB6中使用ADO访问数据库 \r\n19.11.1 使用ADO连接数据库 \r\n19.11.2 在表中添加或查询记录 \r\n19.11.3 使用ADO扩展 \r\n19.12 ADO中的DBase类\r\n19.13 在VB.NET中访问数据库 \r\n19.14 使用ADO.NET \r\n19.14.1 连接数据库\r\n19.14.2 从数据库表中读取数据 \r\n19.14.3 执行查询 \r\n19.14.4 删除表中的内容 \r\n19.15 使用ADO.NET向数据库表中添加记录 \r\n19.16 编写VB.NET ADO 伪模式 \r\n19.16.1 DBTable类 \r\n19.17 为每一个表格创建类 \r\n19.18 存储价格 \r\n19.19 装载数据库表 \r\n19.20 最终的应用程序\r\n19.21 Fa?ade的组成\r\n19.22 小结 \r\n19.23 光盘中的程序 \r\n\r\n第20章 轻量模式 \r\n\r\n20.1 讨论 \r\n20.2 举例 \r\n20.2.1 类结构图 \r\n20.2.2 选择一个文件夹 \r\n20.3 用VB.NET实现轻量模式文件夹\r\n20.4 VB中Flyweight的使用 \r\n20.5 可共享对象 \r\n20.6 Copy-on-write对象 \r\n20.7 光盘中的程序 \r\n\r\n第21章 代理模式 \r\n\r\n21.1 示例 \r\n21.2 用VB.NET实现代理模式 \r\n21.3 VB中的Proxy \r\n21.4 Copy-on-write \r\n21.5 相关模式的比较\r\n21.6 光盘中的程序 \r\n21.7 结构模式总结 \r\n\r\n第Ⅳ部分 行为模式\r\n\r\n第22章 响应链 \r\n\r\n22.1 适用范围 \r\n22.2 代码示例 \r\n22.3 列表框 \r\n22.4 实现帮助系统 \r\n22.4.1 获得帮助命令\r\n22.5 链还是树 \r\n22.6 用VB.NET实现响应链 \r\n22.7 请求的种类 \r\n22.8 VB中的示例 \r\n22.9 小结 \r\n22.10 光盘中的程序 \r\n\r\n第23章 命令模式 \r\n\r\n23.1 目的 \r\n23.2 命令对象 \r\n23.3 建立Command对象 \r\n23.4 命令数组 \r\n23.5 命令模式小结 \r\n23.6 提供撤消 \r\n23.7 VB.NET中的命令模式 \r\n23.8 CommandHolder接口 \r\n23.9 在VB.NET中处理撤消命令 \r\n23.10 VB中的命令模式 \r\n23.11 光盘中的程序 \r\n\r\n第24章 解释模式 \r\n\r\n24.1 目的 \r\n24.2 适用范围 \r\n24.3 一个简单的报告示例 \r\n24.4 解释这种语言 \r\n24.5 解析时使用的对象 \r\n24.6 减少分析栈 \r\n24.7 实现解释模式\r\n24.7.1 语法树 \r\n24.8 用VB6实现解释器 \r\n24.9 解析对象 \r\n24.10 小结 \r\n24.11 光盘上的程序 \r\n\r\n第25章 迭代模式 \r\n\r\n25.1 目的 \r\n25.2 VB6示例代码 \r\n25.2.1 使用迭代 \r\n25.3 过滤迭代 \r\n25.3.1 过滤迭代器 \r\n25.4 用VB.NET实现迭代 \r\n25.5 小结 \r\n25.6 光盘中的程序 \r\n\r\n第26章 协调模式 \r\n\r\n26.1 一个示例 \r\n26.2 控件间的交互 \r\n26.3 代码示例 \r\n26.3.1 系统的初始化 \r\n26.4 协调和命令对象 \r\n26.5 用VB.NET实现协调模式 \r\n26.5.1 初始化 \r\n26.5.2 处理新控件的事件 \r\n26.6 小结 \r\n26.7 单接口协调类 \r\n26.8 用法的讨论 \r\n26.9 光盘中的程序\r\n\r\n第27章 记事模式 \r\n\r\n27.1 目的 \r\n27.2 实现 \r\n27.3 示例 \r\n27.3.1 注意事项 \r\n27.4 用户接口中的命令对象 \r\n27.5 处理鼠标和画图事件 \r\n27.6 用VB.NET编写Memento\r\n27.7 小结 \r\n27.8 光盘中的程序 \r\n\r\n第28章 观察模式 \r\n\r\n28.1 查看颜色的变化 \r\n28.2 用VB.NET实现观察模式 \r\n28.3 传递的消息 \r\n28.4 小结 \r\n28.5 关盘中的程序 \r\n\r\n第29章 状态模式 \r\n\r\n29.1 示例代码 \r\n29.2 状态间的转换 \r\n29.3 Mediator和StateManager之间的交互 \r\n29.4 处理Fill状态 \r\n29.5 处理撤消列表 \r\n29.5.1 用VB6实现填充圆形 \r\n29.6 在VB.NET中实现状态模式 \r\n29.7 Mediator和God类 \r\n29.8 小结 \r\n29.9 状态转换 \r\n29.10 光盘中的程序 \r\n\r\n第30章 策略模式\r\n\r\n30.1 目的 \r\n30.2 示例代码 \r\n30.3 Context类\r\n30.4 程序命令 \r\n30.5 线形图和柱形图策略 \r\n30.6 用VB绘图 \r\n30.7 用VB.NET实现策略模式 \r\n30.8 小结 \r\n30.9 光盘中的程序 \r\n\r\n第31章 模板方法模式\r\n\r\n31.1 目的 \r\n31.2 Template类中的方法 \r\n31.3 示例 \r\n31.3.1 画一个标准的三角形 \r\n31.3.2 画一个等腰三角形 \r\n31.4 画三角形程序 \r\n31.5 模板和回调 \r\n31.6 小结 \r\n31.7 光盘中的程序 \r\n\r\n第32章 访问者模式 \r\n\r\n32.1 目的 \r\n32.2 使用访问者模式的时机 \r\n32.3 示例 \r\n32.4 访问类\r\n32.5 访问多个类 \r\n32.6 经理也是员工\r\n32.7 访问者的全部捕获操作 \r\n32.8 两次分派 \r\n32.9 为什么要这样做 \r\n32.10 遍历一系列的类\r\n32.11 在VB6中编写访问者 \r\n32.12 小结 \r\n32.13 光盘中的程序 \r\n\r\n参考文献
这是一本非常实用的VB设计模式专著,讲述如何在设计模式思想指导下用VB.NET和VB6编写程序,也可以作为VB.NET的编程导论。本书以一系列篇幅较短小的章节来讨论设计模式,每种模式一章,并给出一到两个已经用程序实现的例子,并在每一章中用UML图来解释类之间的相互作用。
该书不是众所周知的由“四人帮”(Gang of Four)编写的Design Patterns一书的姊妹篇,而是为那些希望深入学习和应用设计模式的人编写的导学书。在阅读本书之前没有必要一定读过Design Patterns,但在阅读之后你可能急切地想去读或更细致地重读原著Design Patterns。
在本书中,你将了解到设计模式是程序中经常用于组织对象的有效方法,可以使程序设计更简单并且更容易修改。你也将会发现,在逐渐地了解设计模式后,将会增加许多如何进行程序设计的新词汇。
人们开始从纯理论到纯实践的各个方面去认同设计模式,到最终发现它的巨大作用的时候,感叹将脱口而出。此刻也就意味着你的脑海里出现了如何使用设计模式来帮助你工作的设想。
在本书中,我们试图通过各种不同的方法,帮助你建立设计模式的思想。本书由引言、VB.NET简介、设计模式一般性描述、生成模式、结构模式和行为模式六个部分构成。
对每一个设计模式,我们首先简单介绍所讨论的设计模式,然后设计简单的程序实例。每一个实例都是基于图形用户界面的程序,你可以运行这些程序,以便更具体地了解设计模式的含义。书中的所有示例程序,以及这些示例的改进程序都放在配套光盘中,你可以从光盘中运行、修改这些程序,并且根据实际工作调整程序中的内容。
我们首先向你展示如何在VB6中有效地使用设计模式,然后再在VB.NET(也被称为VB7)中使用同样的模式。因为每一个程序中都有许多类文件,所以我们为每一个示例建立了一个VB工程文件,并分别存放在各自的子目录中,从而避免混乱,我们把VB.NET示例分开存放于该模式的子目录中。本书基于Beta-2版的VB.NET讨论编程,它与最终的发行版不会有太大的变化。你可以从Addison-Wesley的网址获得书中改进的示例程序。
翻开此书,你将会看到我们制作的一些用于解释示例的程序屏幕截图,它提供另一种巩固设计模式学习的方法。另外,你也可以看到另一种用于解释类之间交互的UML图。这是一种用框和线来解释类之间的联系和层次结构的示意图。图中的箭头指向父类,而点线箭头指向接口。如果你不是十分了解UML,可以仔细阅读我们在第Ⅱ部分对UML的介绍。
读完此书,你将从中受益颇多,并将在日常的VB编程工作中使用设计模式。
James W. Cooper
Nantuchet, MA
Wilton, CT
Maui, Hi