自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(0)
  • 资源 (241)
  • 收藏
  • 关注

空空如也

Delphi 6企业级解决方案及应用剖析

第一部分 Delphi 6与企业级应用开发 第1章 用Delphi 6构建企业级应用 1 1.1 企业和企业级应用 1 1.2 企业级应用体系结构 3 1.2.1 表现层 4 1.2.2 业务层 6 1.2.3 数据层 7 1.2.4 三层结构的优势 8 1.3 企业级应用体系构建思想的发展 9 1.4 选择Delphi 6作为企业级开发的利器 15 1.4.1 Delphi 6适用对象和所能实现的 开发目标 18 1.4.2 用Delphi 6实现企业级多层应用 体系结构 19 第2章 企业级应用开发方略 22 2.1 企业级开发概述 22 2.1.1 企业级开发的多角度视图 22 2.1.2 信息系统的构成和参与者 24 2.1.3 系统开发生命周期 25 2.2 CMM与软件开发过程 26 2.2.1 与CMM有关的概念 27 2.2.2 CMM模型 28 2.2.3 CMM对软件过程的改进 32 2.3 开发组织管理 33 2.3.1 人员组织 33 2.3.2 项目管理 35 2.3.3 文档管理 39 2.4 需求和系统分析 42 2.4.1 需求分析 42 2.4.2 系统分析的方法 44 2.4.3 系统的信息分析和功能分析 46 2.4.4 系统的结构分析 49 2.5 分布式应用系统设计方法 53 2.5.1 分布式结构实现模型 53 2.5.2 设计目标和约束分析 55 2.5.3 设计分布式应用程序 58 2.6 组件模型和基于组件的开发 61 2.6.1 组件的概念 61 2.6.2 组件模型 62 2.6.3 基于组件的开发 64 2.6.4 组件标准 65 2.7 面向对象的开发方法 67 2.7.1 面向对象技术的背景及特点 68 2.7.2 面向对象程序设计与面向对象数据库 69 2.7.3 面向对象的系统分析与设计 70 2.8 质量管理和系统测试 73 2.8.1 软件的质量 73 2.8.2 质量管理 76 2.8.3 系统测试 78 第二部分 Delphi 6企业级应用开发技术 第3章 VCL和编程基本组件 81 3.1 Object类 81 3.2 VCL的层次结构 82 3.2.1 组件 84 3.2.2 Windows自己的组件 85 3.2.3 对象 85 3.3 VCL的属性、方法和事件 86 3.3.1 通用的VCL属性 86 3.3.2 通用的VCL方法 87 3.3.3 通用的 VCL事件 88 3.4 按钮型组件 89 3.4.1 TButton 89 3.4.2 TBitBtn 90 3.4.3 TSpeedButton 91 3.5 编辑型组件 92 3.5.1 Tlabel、TstaticText和TLabeledEdit 93 3.5.2 TEdit、TMaskEdit和TSpinEdit 94 3.5.3 Tmemo和TRichEdit 97 3.6 选择型组件 99 3.6.1 TRadioButton 和TRadioGroup 99 3.6.2 TcheckBox和TCheckListBox 101 3.6.3 TComboBox 102 3.6.4 TListBox 105 3.6.5 TComboBoxEx 109 3.6.6 TColorBox 111 3.7 调节型组件 111 3.7.1 TScrollBar 111 3.7.2 TSplitter 113 3.7.3 TTrackBar 115 3.7.4 TUpDown 115 3.8 容器型组件 117 3.8.1 TGroupBox 117 3.8.2 TScrollBox 117 3.8.3 TPanel 118 3.8.4 TPageControl 119 3.8.5 TFrame 122 3.9 显示型组件 126 3.9.1 TDrawGrid 126 3.9.2 TStringGrid 128 3.9.3 TTreeView 130 3.9.4 TListView 134 3.9.5 TValueListEditor 141 第4章 用户界面设计技术 145 4.1 用户交互界面设计概述 145 4.1.1 常用控件的设计 145 4.1.2 窗体和提示框的设计 147 4.2 菜单设计 148 4.2.1 TMainMenu 149 4.2.2 TPopupMenu 149 4.2.3 TMenuItem 151 4.2.4 Menu Designer 154 4.2.5 创建可移植菜单 156 4.2.6 动态菜单 160 4.2.7 宿主绘制菜单 164 4.2.8 菜单的融合 167 4.2.9 控制菜单设计 169 4.3 对话框 172 4.3.1 模式对话框与非模式对话框 172 4.3.2 公用对话框组件 176 4.3.3 标准对话框 189 4.4 快捷工具设计 194 4.4.1 工具栏设计 194 4.4.2 状态栏设计 203 4.4.3 系统托盘程序 206 4.5 Action及Action的统一管理 209 4.5.1 TAction 210 4.5.2 TActionList 211 4.5.3 TActionManager 212 4.5.4 创建Action Band 215 第5章 字符、文件处理和键盘、鼠标 编程 219 5.1 字符和文本的处理 219 5.1.1 字符和字符串相关类型 219 5.1.2 字符串相关方法 220 5.1.3 字符串列表 228 5.2 文件操作 230 5.2.1 文件命令 230 5.2.2 文本文件 233 5.2.3 有类型文件 234 5.2.4 无类型文件 238 5.2.5 初始化文件 239 5.2.6 文件流 241 5.2.7 内存映射文件 247 5.2.8 文件系统 250 5.3 键盘和鼠标编程 260 5.3.1 键盘编程 260 5.3.2 鼠标编程 262 第6章 Windows高级编程技术 271 6.1 DLL编程技术 271 6.1.1 DLL概貌 271 6.1.2 在Delphi中创建DLL 272 6.1.3 使用动态链接库 275 6.2 OLE和COM编程技术 277 6.2.1 COM对象和类工厂 277 6.2.2 Automation 280 6.2.3 创建Automation服务器 281 6.3 ActiveX编程技术 288 6.3.1 在Delphi中使用ActiveX控件 288 6.3.2 在Delphi中编写ActiveX控件 294 6.4 使用Windows注册表 294 6.5 Windows的消息处理 297 6.5.1 何为消息 298 6.5.2 消息的处理方法 298 6.5.3 Windows消息分类 300 6.5.4 发送消息 300 6.5.5 处理消息 301 6.5.6 消息过滤 302 第7章 图形图像及多媒体编程技术 305 7.1 图形图像技术 305 7.1.1 TCanvas对象 305 7.1.2 TShape对象 310 7.1.3 图像对象 311 7.2 多媒体程序设计 313 7.2.1 创建一个简单的媒体播放器 313 7.2.2 播放WAV文件和AVI视频 314 第8章 数据库应用技术 317 8.1 设计数据库应用程序 317 8.1.1 使用数据库 317 8.1.2 数据库应用程序的体系结构 319 8.1.3 设计用户界面 323 8.2 SQL编程技术 324 8.2.1 SQL语言简介 324 8.2.2 使用SQL编程 326 8.2.3 使用存储过程 331 8.2.4 使用事务 337 8.3 MIDAS和多层应用系统开发 339 8.3.1 MIDAS技术 339 8.3.2 MIDAS应用程序的工作流程 341 8.3.3 创建一个多层数据库应用程序的 基本过程 342 8.4 ADO数据库访问技术 346 8.4.1 ADO概述 347 8.4.2 连接ADO数据库 347 8.4.3 ADO数据集 354 8.4.4 使用TADODataSet 357 8.4.5 使用TADOTable 358 8.4.6 使用TADOQuery 358 第9章 Web应用程序开发技术 360 9.1 Web服务器应用程序概述 360 9.1.1 URL和HTTP 361 9.1.2 HTTP服务器 362 9.1.3 Web服务器应用程序类型 363 9.2 使用WebSnap 364 9.2.1 WebSnap概述 364 9.2.2 创建Web服务器应用程序 366 9.2.3 Web模块 370 9.2.4 Adapter 372 9.2.5 Page Producer 372 9.3 在WebSnap中编写服务器端脚本 373 9.3.1 脚本块 373 9.3.2 编辑和查看脚本 373 9.3.3 包含其他文件 374 9.3.4 脚本对象 375 9.4 WebSnap工作流程 376 9.4.1 WebContext 376 9.4.2 Dispatcher组件 376 9.4.3 Dispatcher工作原理 377 9.5 一个WebSnap实例 381 9.5.1 新建WebSnap应用程序 381 9.5.2 创建数据库模块 383 9.5.3 创建页面模块 384 9.6 Web服务器应用程序的调试 388 第三部分 人力资源管理系统解决 方案及应用剖析 第10章 系统概述 391 10.1 系统解决方案 391 10.1.1 系统背景 391 10.1.2 需求分析 392 10.1.3 实现方案 394 10.2 系统约定 396 10.2.1 编码规范 396 10.2.2 用户分组 399 10.3 数据库设计 400 10.3.1 设计数据库表结构 400 10.3.2 编写SQL Server 2000脚本语言 402 第11章 人事信息维护管理 408 11.1 人员维护 408 11.1.1完新建一个WebSnap应用程序 408 11.1.2完基本信息维护页面 411 11.1.3完完善记录的定位、浏览和增减功能 415 11.1.4完主从明细表的处理 419 11.2 照片维护 422 11.3 动态查询 428 11.3.1 决策查询 428 11.3.2 人员查询 433 11.4 图表显示 434 11.4.1 创建查询统计图表的ActiveForm 435 11.4.2 设计和整合统计图表页面 439 第12章 系统登录及安全控制 443 12.1 WebSnap安全机制 443 12.2 系统登录 446 12.3 安全控制 450 第13章 系统的进一步完善 453 13.1 增加BBS讨论组 453 13.2 增加收发邮件功能 457 13.2.1 登录邮件服务器 459 13.2.2 查看和阅读邮件 462 13.2.3 发送和群发邮件 473 13.3 页面的美化 477 第四部分 电子商务货物配送系统 解决方案及应用剖析 第14章 系统概述 485 14.1 系统解决方案 485 14.1.1 电子商务货物配送系统的实现 目标 485 14.1.2 对电子商务货物配送系统功能的 基本要求 486 14.1.3 电子商务货物配送系统的解决 方案 486 14.2 系统分析 488 14.3 数据组织 491 14.3.1 代码设计 491 14.3.2 数据库结构设计 494 14.3.3 创建数据库对象和数据维护 497 14.4 系统的初始设置 499 14.5 系统内部控制机制设计 506 第15章 代码维护模块 508 15.1 模块概述 508 15.2 使用Frame构建复用界面 509 15.3 使用DataModel集成数据库环境 512 15.4 使用Treeview导航表数据 517 15.5 使用公共单元实现模块维护 520 15.6 使用注册表设置系统参数 527 15.7 使用ActionManager管理操作动作 529 第16章 出库管理模块 539 16.1 模块概述 539 16.2 创建登录服务器程序 541 16.3 创建出库服务器程序 545 16.4 创建瘦型客户程序 549 第17章 统计分析模块 556 17.1 多层结构下的参数化查询 556 17.2 使用DBChart 560 17.3 自动容错和平衡服务器负载 562 第五部分 自动控制与监测系统 解决方案及应用剖析 第18章 自动控制与监测系统编程技术 567 18.1 Delphi中的多线程处理 568 18.1.1 进程和线程 568 18.1.2 多线程编程 572 18.1.3 线程的优先级 574 18.1.4 线程类 575 18.2 Windows的事件和消息 580 18.3 创建组件 582 18.3.1 创建组件 582 18.3.2 组件测试 585 18.3.3 注册组件 585 18.3.4 提供联机帮助 586 18.4 使用动态链接库 586 第19章 串口通信程序应用剖析 590 19.1 串行通信基础 590 19.1.1 数据通信基础 590 19.1.2 异步串行通信协议 592 19.1.3 DCE设备—Modem 593 19.1.4 RS-232C标准 595 19.2 串口通信API函数介绍 601 19.3 串口通信程序实现 607 19.3.1 利用嵌入式汇编语言开发 通信程序 607 19.3.2 利用多线程编写串口通信程序 621 19.3.3 Async32控件详解 625 19.3.4 Async32控件示例程序 633 第20章 硬件接口程序应用剖析 644 20.1 直接操作端口的Delphi单元 644 20.2 开发Windows驱动程序 646 20.3 用DLL编写硬件接口程序 648 20.4 用TVicHw32控件编程 650 20.4.1 TVicHw32控件说明 650 20.4.2 示例程序 653

2012-12-15

.NET应用架构设计原则、模式与实践

第一部分 架构与设计的原则和模式 第1章 架构与设计的流程和核心概念 1.1 正确认识软件架构 1.1.1 什么是架构 1.1.2 架构师的职责 1.1.3 架构设计 1.1.4 架构设计的优点 1.2 正确理解设计的含义 1.2.1 设计的重要性 1.2.2 架构和设计的关系 1.3 架构设计中的重要概念 1.3.1 Tier和Layer 1.3.2 架构与框架 1.3.3 架构与模式 1.4 本章小结 第2章 模式、设计原则和方法 2.1 设计原则与软件设计 2.1.1 设计原则简述 2.1.2 设计原则实战 2.2 设计模式 2.2.1 设计模式简介 2.2.2 正确使用设计模式 2.2.3 设计模式实战 2.3 企业应用架构模式 2.3.1 什么是企业架构 2.3.2 什么是企业级开发 2.3.3 再议架构设计和模式 2.3.4 企业架构模式介绍 2.4 企业架构模式实战 2.5 设计方法 2.5.1 测试驱动开发 2.5.2 领域驱动开发 2.5.3 行为驱动开发 2.6 本章小结 第二部分 架构与设计的方法和最佳实践 第3章 架构分层 3.1 反模式项目实例 3.2 分层设计 3.2.1 正确理解分层 3.2.2 常见的分层架构设计 3.2.3 N-Tier架构 3.2.4 N-Tier架构需要考虑的因素 3.3 从重构到分层 3.3.1 业务层设计实战 3.3.2 数据访问层设计实战 3.3.3 服务层设计实战 3.3.4 显示层设计实战 3.4 本章小结 第4章 业务层设计 4.1 业务层组织模式剖析 4.1.1 Transaction Script模式与实战 4.1.2 Active Record模式与实战 4.1.3 Domain Model模式与实战 4.1.4 Anemic Domain Model模式与实战 4.1.5 业务层组织模式比较 4.2 业务层常用设计模式解析及实战 4.2.1 工厂方法模式 4.2.2 装饰者模式 4.2.3 模板方法模式 4.2.4 状态模式 4.2.5 策略模式 4.2.6 模板方法模式、状态模式、策略模式的比较 4.3 业务层常用的企业架构模式及实战 4.4 模式联合实战 4.4.1 需求规格模式 4.4.2 组合模式 4.5 业务层常用的设计原则及实战 4.6 本章小结 第5章 服务层设计 5.1 服务层详解 5.1.1 服务层的由来 5.1.2 服务层的职责是什么 5.1.3 服务层的必要性 5.2 服务层常用设计模式解析 5.2.1 外观模式 5.2.2 远程外观模式 5.2.3 数据传输对象模式 5.3 SOA介绍 5.3.1 SOA用途 5.3.2 SOA原则 5.3.3 服务设计原则 5.3.4 服务解惑 5.3.5 服务操作设计原则 5.3.6 服务粒度介绍 5.4 服务层常用消息模式解析 5.4.1 文档消息模式与请求-响应模式 5.4.2 预约保留模式 5.4.3 等幂模式 5.5 SOA实战——WCF实现 5.5.1 系统分析 5.5.2 业务层实战 5.5.3 数据层实战 5.5.4 服务层实战 5.5.5 代理层实战 5.5.6 显示层实战 5.6 本章小结 第6章 数据访问层设计 6.1 数据访问层简述 6.2 数据访问层的设计策略 6.2.1 仓储模式 6.2.2 数据访问对象模式 6.3 数据访问层常用模式与原则解析 6.3.1 工作单元 6.3.2 标识映射 6.3.3 延迟加载 6.3.4 数据并发控制 6.3.5 查询对象 6.4 ORM对象关系映射 6.4.1 NHibernate介绍 6.4.2 Entity Framework介绍 6.5 企业级领域驱动设计项目实战 6.5.1 业务层的实现 6.5.2 服务层的实现 6.5.3 数据访问层的实现 6.5.4 显示层的实现 6.6 本章小结 第7章 数据存储层设计 7.1 合理选择数据存储方案 7.1.1 数据存储的三种方式 7.1.2 选择合理的数据存储方案 7.2 数据库架构设计 7.2.1 分布数据 7.2.2 数据拆分 7.2.3 读写分离 7.2.4 数据缓存 7.3 数据库设计 7.3.1 数据库计划 7.3.2 逻辑数据库设计 7.3.3 物理数据库设计 7.4 SQL Server数据库性能瓶颈分析与解决方案 7.4.1 缺失索引的瓶颈分析与解决方案 7.4.2 昂贵查询的瓶颈分析与解决方案 7.4.3 数据库碎片的瓶颈分析与解决方案 7.5 本章小结 第8章 显示层设计 8.1 MVP模式的原理与实战 8.1.1 MVP模式实战(ASP.NET实现) 8.1.2 MVP模式经验谈 8.1.3 MVP模式之高级话题 8.2 前端控制器模式的原理与实战 8.2.1 前端控制器模式介绍 8.2.2 深入浅出命令模式 8.2.3 前端控制器模式实战 8.3 MVC模式的原理与实战 8.3.1 深入浅出MVC模式 8.3.2 MVC模式之高级话题 8.3.3 MVC模式实战——对ASP.NET MVC源码进行分析 8.4 PM模式的原理与实战 8.4.1 PM模式的解析 8.4.2 PM模式实战 8.5 MVVM模式的原理与实战 8.5.1 MVVM模式介绍 8.5.2 MVVM模式深度剖析 8.5.3 MVVM模式高级话题 8.6 本章小结 第三部分 .NET应用的架构与设计实战 第9章 IT创业产品互推平台的项目背景与功能介绍 9.1 IT创业产品互推平台背景 9.2 SNS功能介绍 9.2.1 用户管理 9.2.2 个人信息管理 9.2.3 软件展示功能 9.2.4 好友功能 9.2.5 站内信息功能 9.2.6 多媒体文件管理 9.2.7 博客 9.2.8 用户群 9.2.9 微博 9.2.10 共享功能 9.2.11 论坛 9.2.12 活动 9.2.13 投票 9.2.14 页面布局定制 9.2.15 评级 9.3 本章小结 第10章 IT创业产品互推平台架构设计 10.1 分层设计 10.1.1 逻辑分层的总体设计 10.1.2 通用功能设计 10.1.3 业务层设计 10.1.4 数据持久层设计 10.1.5 显示层设计 10.2 部署设计 10.2.1 单服务器部署 10.2.2 多服务器部署 10.3 文件存储的设计 10.4 基础类库的设计 10.4.1 缓存 10.4.2 配置读取 10.4.3 邮件发送 10.4.4 日志记录 10.4.5 辅助类的实现 10.5 本章小结 第11章 IT创业产品互推平台用户管理 11.1 用户管理功能分析 11.1.1 用户注册 11.1.2 用户登录 11.1.3 找回密码 11.1.4 激活账户 11.1.5 删除用户 11.1.6 更新用户 11.1.7 查询用户 11.2 用户管理接口的定义 11.2.1 服务层实现定义 11.2.2 业务模型定义 11.2.3 数据访问层的接口定义 11.3 用户管理的实现 11.3.1 服务层实现 11.3.2 业务层实现 11.3.3 数据访问层实现 11.3.4 显示层实现 11.4 本章小结 附录A

2012-11-18

基于MODBUS协议的串口控件的实现

基于MODBUS协议的串口控件的实现 PDF格式

2012-08-15

领域驱动设计第二分卷

一共两个压缩分卷,这是第二个分卷 第ⅰ部分 让领域模型发挥作用. 第1章 消化知识 5 1.1 有效建模的因素 9 1.2 知识消化 10 1.3 持续学习 11 1.4 知识丰富的设计 12 1.5 深层模型 15 第2章 交流及语言的使用 17 2.1 通用语言 17 2.2 利用对话改进模型 22 2.3 一个团队,一种语言 24 2.4 文档和图 25 2.4.1 书面的设计文档 27 2.4.2 执行的基础 29 2.5 说明性模型 29 第3章 将模型和实现绑定 32 3.1 模型驱动设计 33 3.2 建模范型和工具支持 36 3.3 突出主旨:为什么模型对用户很关键 41 3.4 实践型建模人员 43 .第ⅱ部分 模型驱动设计的构建块 第4章 分离领域 47 4.1 分层架构 47 4.1.1 层间的联系 51 4.1.2 架构框架 51 4.2 模型属于领域层 52 4.3 其他种类的隔离 55 第5章 软件中的模型描述 56 5.1 关联 57 5.2 实体(又称引用对象) 62 5.2.1 实体建模 65 5.2.2 设计标识操作 66 5.3 值对象 68 5.3.1 设计值对象 71 5.3.2 设计包含值对象的关联 73 5.4 服务 74 5.4.1 服务和分隔的领域层 75 5.4.2 粒度 77 5.4.3 访问服务 77 5.5 模块(包) 77 5.5.1 敏捷的模块 79 5.5.2 基础结构驱动打包的缺陷 80 5.6 建模范式 82 5.6.1 对象范式的优势 82 5.6.2 对象世界中的非对象 84 5.6.3 在混合范式中使用模型驱动设计 85 第6章 领域对象的生命周期 87 6.1 聚合 88 6.2 工厂 96 6.2.1 工厂及其应用场所的选择99 6.2.2 只需构造函数的情况 101 6.2.3 接口的设计 102 6.2.4 如何放置不变量的逻辑 103 6.2.5 实体工厂与值对象工厂 103 6.2.6 存储对象的重建 103 6.3 仓储 105 6.3.1 查询仓储 109 6.3.2 了解仓储实现的必要性 111 6.3.3 实现仓储 111 6.3.4 在框架内工作 113 6.3.5 与工厂的关系 113 6.4 为关系数据库设计对象 115 第7章 使用语言:扩展示例 117 7.1 货物运输系统概述 117 7.2 隔离领域:系统简介 119 7.3 区分实体和值对象 120 7.4 运输领域中的关联设计 121 7.5 聚合的边界 123 7.6 选择仓储 124 7.7 场景概述 125 7.7.1 应用特性示例:改变一件货物的目的地126 7.7.2 应用特性示例:重复业务126 7.8 对象的创建 126 7.8.1 cargo的工厂和构造函数 126 7.8.2 添加一个handling event127 7.9 停下来重构:cargo聚合的另一种设计 129 7.10 运输模型中的模块 131 7.11 引入新特性:配额检查 133 7.11.1 连接两个系统 134 7.11.2 改进模型:划分业务 135 7.11.3 性能调整 137 7.12 小结 137 第ⅲ部分 面向更深层解的重构 第8章 突破 143 8.1 关于突破的故事 144 8.1.1 中看不中用的模型 144 8.1.2 突破 146 8.1.3 更深层的模型 148 8.1.4 冷静的决定 149 8.1.5 成效 150 8.2 时机 150 8.3 着眼于根本 151 8.4 尾声:一连串的新理解 151 第9章 隐含概念转变为显式概念 153 9.1 概念挖掘 153 9.1.1 倾听表达用语 154 9.1.2 检查不协调之处 157 9.1.3 研究矛盾之处 162 9.1.4 查阅书籍 162 9.1.5 尝试,再尝试 164 9.2 如何建模不太明显的概念 164.. 9.2.1 显式的约束 165 9.2.2 作为领域对象的流程 167 9.2.3 规格 168 9.2.4 规格的应用和实现 171 第10章 柔性设计 184 10.1 释意接口 186 10.2 无副作用函数 190 10.3 断言 194 10.4 概念轮廓 197 10.5 孤立类 201 10.6 操作封闭 203 10.7 声明性设计 205 10.8 一个声明性风格的设计 207 10.9 攻击角度 215 10.9.1 切分子领域

2012-08-14

领域驱动设计第一分卷

一共两个压缩分卷,这是第一个分卷 第ⅰ部分 让领域模型发挥作用. 第1章 消化知识 5 1.1 有效建模的因素 9 1.2 知识消化 10 1.3 持续学习 11 1.4 知识丰富的设计 12 1.5 深层模型 15 第2章 交流及语言的使用 17 2.1 通用语言 17 2.2 利用对话改进模型 22 2.3 一个团队,一种语言 24 2.4 文档和图 25 2.4.1 书面的设计文档 27 2.4.2 执行的基础 29 2.5 说明性模型 29 第3章 将模型和实现绑定 32 3.1 模型驱动设计 33 3.2 建模范型和工具支持 36 3.3 突出主旨:为什么模型对用户很关键 41 3.4 实践型建模人员 43 .第ⅱ部分 模型驱动设计的构建块 第4章 分离领域 47 4.1 分层架构 47 4.1.1 层间的联系 51 4.1.2 架构框架 51 4.2 模型属于领域层 52 4.3 其他种类的隔离 55 第5章 软件中的模型描述 56 5.1 关联 57 5.2 实体(又称引用对象) 62 5.2.1 实体建模 65 5.2.2 设计标识操作 66 5.3 值对象 68 5.3.1 设计值对象 71 5.3.2 设计包含值对象的关联 73 5.4 服务 74 5.4.1 服务和分隔的领域层 75 5.4.2 粒度 77 5.4.3 访问服务 77 5.5 模块(包) 77 5.5.1 敏捷的模块 79 5.5.2 基础结构驱动打包的缺陷 80 5.6 建模范式 82 5.6.1 对象范式的优势 82 5.6.2 对象世界中的非对象 84 5.6.3 在混合范式中使用模型驱动设计 85 第6章 领域对象的生命周期 87 6.1 聚合 88 6.2 工厂 96 6.2.1 工厂及其应用场所的选择99 6.2.2 只需构造函数的情况 101 6.2.3 接口的设计 102 6.2.4 如何放置不变量的逻辑 103 6.2.5 实体工厂与值对象工厂 103 6.2.6 存储对象的重建 103 6.3 仓储 105 6.3.1 查询仓储 109 6.3.2 了解仓储实现的必要性 111 6.3.3 实现仓储 111 6.3.4 在框架内工作 113 6.3.5 与工厂的关系 113 6.4 为关系数据库设计对象 115 第7章 使用语言:扩展示例 117 7.1 货物运输系统概述 117 7.2 隔离领域:系统简介 119 7.3 区分实体和值对象 120 7.4 运输领域中的关联设计 121 7.5 聚合的边界 123 7.6 选择仓储 124 7.7 场景概述 125 7.7.1 应用特性示例:改变一件货物的目的地126 7.7.2 应用特性示例:重复业务126 7.8 对象的创建 126 7.8.1 cargo的工厂和构造函数 126 7.8.2 添加一个handling event127 7.9 停下来重构:cargo聚合的另一种设计 129 7.10 运输模型中的模块 131 7.11 引入新特性:配额检查 133 7.11.1 连接两个系统 134 7.11.2 改进模型:划分业务 135 7.11.3 性能调整 137 7.12 小结 137 第ⅲ部分 面向更深层解的重构 第8章 突破 143 8.1 关于突破的故事 144 8.1.1 中看不中用的模型 144 8.1.2 突破 146 8.1.3 更深层的模型 148 8.1.4 冷静的决定 149 8.1.5 成效 150 8.2 时机 150 8.3 着眼于根本 151 8.4 尾声:一连串的新理解 151 第9章 隐含概念转变为显式概念 153 9.1 概念挖掘 153 9.1.1 倾听表达用语 154 9.1.2 检查不协调之处 157 9.1.3 研究矛盾之处 162 9.1.4 查阅书籍 162 9.1.5 尝试,再尝试 164 9.2 如何建模不太明显的概念 164.. 9.2.1 显式的约束 165 9.2.2 作为领域对象的流程 167 9.2.3 规格 168 9.2.4 规格的应用和实现 171 第10章 柔性设计 184 10.1 释意接口 186 10.2 无副作用函数 190 10.3 断言 194 10.4 概念轮廓 197 10.5 孤立类 201 10.6 操作封闭 203 10.7 声明性设计 205 10.8 一个声明性风格的设计 207 10.9 攻击角度 215 10.9.1 切分子领域

2012-08-14

重构:改善既有代码的设计(中文版).

第1章 重构,第一个案例1 1.1 起点1 1.2 重构的第一步7 1.3 分解并重组statement()8 1.4 运用多态取代与价格相关的条件逻辑34 1.5 结语52 第2章 重构原则53 2.1 何谓重构53 2.2 为何重构55 2.3 何时重构57 2.4 怎么对经理说60 2.5 重构的难题62 2.6 重构与设计66 2.7 重构与性能69 2.8 重构起源何处71 第3章 代码的坏味道75 3.1 DuplicatedCode(重复代码)76 3.2 LongMethod(过长函数)76 3.3 LargeClass(过大的类)78 3.4 LongParameterList(过长参数列)78 3.5 DivergentChange(发散式变化)79 3.6 ShotgunSurgery(霰弹式修改)80 3.7 FeatureEnvy(依恋情结)80 3.8 DataClumps(数据泥团)81 3.9 PrimitiveObsession(基本类型偏执)81 3.10 SwitchStatements(switch惊悚现身)82 3.11 ParallelInheritanceHierarchies(平行继承体系)83 3.12 LazyClass(冗赘类)83 3.13 SpeculativeGenerality(夸夸其谈未来性)83 3.14 TemporaryField(令人迷惑的暂时字段)84 3.15 MessageChains(过度耦合的消息链)84 3.16 MiddleMan(中间人)85 3.17 InappropriateIntimacy(狎昵关系)85 3.18 AlternativeClasseswithDifferentInterfaces(异曲同工的类)85 3.19 IncompleteLibraryClass(不完美的库类)86 3.20 DataClass(纯稚的数据类)86 3.21 RefusedBequest(被拒绝的遗赠)87 3.22 Comments(过多的注释)87 第4章 构筑测试体系89 4.1 自测试代码的价值89 4.2 JUnit测试框架91 4.3 添加更多测试97 第5章 重构列表103 5.1 重构的记录格式103 5.2 寻找引用点105 5.3 这些重构手法有多成熟106 第6章 重新组织函数109 6.1 ExtractMethod(提炼函数)110 6.2 InlineMethod(内联函数)117 6.3 InlineTemp(内联临时变量)119 6.4 ReplaceTempwithQuery(以查询取代临时变量)120 6.5 IntroduceExplainingVariable(引入解释性变量)124 6.6 SplitTemporaryVariable(分解临时变量)128 6.7 RemoveAssignmentstoParameters(移除对参数的赋值)131 6.8 ReplaceMethodwithMethodObject(以函数对象取代函数)135 6.9 SubstituteAlgorithm(替换算法)139 第7章 在对象之间搬移特性141 7.1 MoveMethod(搬移函数)142 7.2 MoveField(搬移字段)146 7.3 ExtractClass(提炼类)149 7.4 InlineClass(将类内联化)154 7.5 HideDelegate(隐藏“委托关系”)157 7.6 RemoveMiddleMan(移除中间人)160 7.7 IntroduceForeignMethod(引入外加函数)162 7.8 IntroduceLocalExtension(引入本地扩展)164 第8章 重新组织数据169 8.1 SelfEncapsulateField(自封装字段)171 8.2 ReplaceDataValuewithObject(以对象取代数据值)175 8.3 ChangeValuetoReference(将值对象改为引用对象)179 8.4 ChangeReferencetoValue(将引用对象改为值对象)183 8.5 ReplaceArraywithObject(以对象取代数组)186 8.6 DuplicateObservedData(复制“被监视数据”)189 8.7 ChangeUnidirectionalAssociationtoBidirectional(将单向关联改为双向关联)197 8.8 ChangeBidirectionalAssociationtoUnidirectional(将双向关联改为单向关联)200 8.9 ReplaceMagicNumberwithSymbolicConstant(以字面常量取代魔法数)204 8.10 EncapsulateField(封装字段)206 8.11 EncapsulateCollection(封装集合)208 8.12 ReplaceRecordwithDataClass(以数据类取代记录)217 8.13 ReplaceTypeCodewithClass(以类取代类型码)218 8.14 ReplaceTypeCodewithSubclasses(以子类取代类型码)223 8.15 ReplaceTypeCodewithState/Strategy(以State/Strategy取代类型码)227 8.16 ReplaceSubclasswithFields(以字段取代子类)232 第9章 简化条件表达式237 9.1 DecomposeConditional(分解条件表达式)238 9.2 ConsolidateConditionalExpression(合并条件表达式)240 9.3 ConsolidateDuplicateConditionalFragments(合并重复的条件片段)243 9.4 RemoveControlFlag(移除控制标记)245 9.5 ReplaceNestedConditionalwithGuardClauses(以卫语句取代嵌套条件表达式)250 9.6 ReplaceConditionalwithPolymorphism(以多态取代条件表达式)255 9.7 IntroduceNullObject(引入Null对象)260 9.8 IntroduceAssertion(引入断言)267 第10章 简化函数调用271 10.1 RenameMethod(函数改名)273 10.2 AddParameter(添加参数)275 10.3 RemoveParameter(移除参数)277 10.4 SeparateQueryfromModifier(将查询函数和修改函数分离)279 10.5 ParameterizeMethod(令函数携带参数)283 10.6 ReplaceParameterwithExplicitMethods(以明确函数取代参数)285 10.7 PreserveWholeObject(保持对象完整)288 10.8 ReplaceParameterwithMethods(以函数取代参数)292 10.9 IntroduceParameterObject(引入参数对象)295 10.10 RemoveSettingMethod(移除设值函数)300 10.11 HideMethod(隐藏函数)303 10.12 ReplaceConstructorwithFactoryMethod(以工厂函数取代构造函数)304 10.13 EncapsulateDowncast(封装向下转型)308 10.14 ReplaceErrorCodewithException(以异常取代错误码)310 10.15 ReplaceExceptionwithTest(以测试取代异常)315 第11章 处理概括关系319 11.1 PullUpField(字段上移)320 11.2 PullUpMethod(函数上移)322 11.3 PullUpConstructorBody(构造函数本体上移)325 11.4 PushDownMethod(函数下移)328 11.5 PushDownField(字段下移)329 11.6 ExtractSubclass(提炼子类)330 …… 第12章 大型重构359 第13章 重构,复用与现实379 第14章 重构工具401 第15章 总结409 参考书目413 要点列表417 索引419

2012-08-12

面向对象分析与设计(第3版).

第1部分 概念 第1章 复杂性 2 1.1 复杂系统的结构 2 1.1.1 个人计算机的结构 3 1.1.2 植物和动物的结构 3 1.1.3 物质的结构 4 1.1.4 社会机构的结构 4 1.2 软件固有的复杂性 5 1.2.1 定义软件复杂性 5 1.2.2 为什么软件在本质上是复杂的 5 1.3 复杂系统的5个属性 8 1.3.1 层次结构 8 1.3.2 相对本原 8 1.3.3 分离关注 9 1.3.4 共同模式 9 1.3.5 稳定的中间形式 9 1.4 有组织和无组织的复杂性 10 1.4.1 复杂系统的规范形式 10 1.4.2 处理复杂性时人的能力的局限 12 1.5 从混沌到有序 12 1.5.1 分解的作用 13 1.5.2 抽象的作用 16 1.5.3 层次结构的作用 16 1.6 复杂系统的设计 17 1.6.1 作为科学和艺术的工程 17 1.6.2 设计的含义 17 1.7 小结 19 第2章 对象模型 20 2.1 对象模型的演进 20 2.1.1 程序设计语言的换代 20 2.1.2 第一代和第二代早期程序设计语言的拓扑结构 22 2.1.3 第二代后期和第三代早期程序设计语言的结构 23 2.1.4 第三代后期程序设计语言的结构 23 2.1.5 基于对象和面向对象的程序设计语言的结构 24 2.2 对象模型基础 26 2.2.1 面向对象编程 29 2.2.2 面向对象设计 29 2.2.3 面向对象分析 30 2.3 对象模型要素 30 2.3.1 抽象的意义 31 2.3.2 封装的意义 35 2.3.3 模块化的意义 38 2.3.4 层次结构的意义 41 2.3.5 类型的意义 46 2.3.6 并发的意义 47 2.3.7 持久的意义 49 2.4 应用对象模型 51 2.4.1 对象模型的好处 51 2.4.2 开放式问题 52 2.5 小结 52 第3章 类与对象 53 3.1 对象的本质 53 3.1.1 什么是对象,什么不是对象 53 3.1.2 状态 55 3.1.3 行为 57 3.1.4 标识符 60 3.2 对象之间的关系 62 3.2.1 链接 62 3.2.2 聚合 64 3.3 类的本质 65 3.3.1 什么是类,什么不是类 65 3.3.2 接口和实现 66 3.3.3 类的生命周期 68 3.4 类之间的关系 68 3.4.1 关联 69 3.4.2 继承 70 3.4.3 聚合 78 3.4.4 依赖关系 79 3.5 类与对象的互动 79 3.5.1 类与对象的关系 79 3.5.2 类与对象在分析和设计中的角色 79 3.6 创建高品质的类与对象 80 3.6.1 评判一种抽象的品质 80 3.6.2 选择操作 81 3.6.3 选择关系 82 3.6.4 选择实现 83 3.7 小结 84 第4章 分类 85 4.1 正确分类的重要性 85 4.1.1 分类的困难 86 4.1.2 分类的增量和迭代本质 87 4.2 确定类和对象 88 4.2.1 经典方法和现代方法 89 4.2.2 面向对象分析 92 4.3 关键抽象与机制 97 4.3.1 确定关键抽象 97 4.3.2 识别机制 99 4.4 小结 101 第2部分 方法 第5章 表示法 104 5.1 统一建模语言 104 5.1.1 简单历史回顾 104 5.1.2 模型与多重视图 105 5.1.3 图分类 105 5.1.4 在实践中使用图 107 5.1.5 概念模型.逻辑模型和物理模型 108 5.1.6 工具的角色 108 5.1.7 面向对象开发的产品 108 5.1.8 规模上的伸缩 109 5.1.9 UML的语法和语义 109 5.1.10 UML2.0信息资源 110 5.2 包图 110 5.2.1 基本概念:包表示法 110 5.2.2 基本概念:元素的可见性 111 5.2.3 基本概念:依赖关系 111 5.2.4 基本概念:包图 113 5.2.5 高级概念:导入和访问 114 5.3 组件图 117 5.3.1 基本概念:组件表示法 117 5.3.2 基本概念:组件图 118 5.3.3 基本概念:组件接口 119 5.3.4 基本概念:组件实现 121 5.3.5 高级概念:组件的内部结构 122 5.4 部署图 123 5.4.1 基本概念:工件表示法 123 5.4.2 基本概念:节点表示法 124 5.4.3 基本概念:部署图 124 5.5 用例图 126 5.5.1 基本概念:执行者 126 5.5.2 基本概念:用例 127 5.5.3 基本概念:用例图 127 5.5.4 高级概念:[[include]]和[[extend]]关系 129 5.5.5 高级概念:泛化 133 5.6 活动图 133 5.6.1 基本概念:动作 134 5.6.2 基本概念:开始和停止 134 5.6.3 基本概念:判断节点和合并节点 134 5.6.4 基本概念:分区 135 5.6.5 高级概念:分叉.结合和并发 135 5.6.6 高级概念:对象流 138 5.6.7 高级概念:其他元素 138 5.7 类图 138 5.7.1 基本概念:类表示法 138 5.7.2 基本概念:类关系 140 5.7.3 高级概念:模板(参数化)类 142 5.7.4 高级概念:可见性 143 5.7.5 高级概念:关联端名称和限定符 144 5.7.6 高级概念:约束 145 5.7.7 高级概念:关联类和注解 148 5.8 序列图 149 5.8.1 基本概念:对象与交互 149 5.8.2 基本概念:生命线与消息 149 5.8.3 高级概念:销毁事件 151 5.8.4 高级概念:执行说明 151 5.8.5 高级概念:交互使用 153 5.8.6 高级概念:控制结构 153 5.9 交互概述图 155 5.9.1 基本概念:框 155 5.9.2 基本概念:控制流元素 155 5.9.3 基本概念:交互图元素 156 5.10 组合结构图 157 5.10.1 基本概念:组合结构的部分 157 5.10.2 基本概念:组合结构的部分与接口 157 5.10.3 基本概念:组合结构连接器 158 5.10.4 高级概念:协作.. 158 5.11 状态机图 159 5.11.1 基本概念:初始状态.最终状态和简单状态 160 5.11.2 基本概念:转换与事件 160 5.11.3 高级概念:状态活动——入口活动.执行活动和出口活动 162 5.11.4 高级概念:控制转换 162 5.11.5 高级概念:复合状态与嵌套状态 163 5.11.6 高级概念:并发与控制 165 5.11.7 高级概念:子状态机状态 168 5.11.8 高级概念:其他状态机图元素 169 5.12 时间图 170 5.12.1 基本概念:更多相同之处 170 5.12.2 基本概念:布局 170 5.12.3 基本概念:事件 171 5.12.4 基本概念:约束 171 5.12.5 高级概念:另一种表示形式 172 5.12.6 高级概念:事件与消息 172 5.13 对象图 173 5.13.1 基本概念:对象 173 5.13.2 基本概念:对象关系 173 5.13.3 高级概念:端点名称和限定符 174 5.14 通信图 175 5.14.1 基本概念:对象.链接和消息 175 5.14.2 基本概念:顺序表达式 176 5.14.3 高级概念:消息与同步 177 5.14.4 高级概念:迭代子句和警戒条件 178 5.15 小结 179 第6章 过程 181 6.1 首要原则 181 6.1.1 成功项目的特征 181 6.1.2 追求理性的开发过程 184 6.2 宏观过程:软件开发生命周期 186 6.2.1 概述 187 6.2.2 宏观过程的内容维:科目 188 6.2.3 宏观过程的时间维:里程碑和阶段 190 6.2.4 宏观过程的时间维:迭代 195 6.2.5 发行计划 196 6.3 微观过程:分析与设计过程 198 6.3.1 概述 198 6.3.2 抽象层次 199 6.3.3 活动 200 6.3.4 产品 201 6.3.5 微观过程与抽象层次 203 6.3.6 识别元素 205 6.3.7 确定元素间的协作 208 6.3.8 确定元素间的关系 211 6.3.9 详细确定元素的语义 213 6.4 小结 216 第7章 实战 217 7.1 管理和计划 217 7.1.1 风险管理 218 7.1.2 任务计划 218 7.1.3 开发评审 219 7.2 人员配备 220 7.2.1 资源配置 220 7.2.2 开发团队角色 221 7.3 发布版本管理 223 7.3.1 配置管理和版本控制 223 7.3.2 集成 224 7.3.3 测试 224 7.4 复用 225 7.4.1 复用的元素 225 7.4.2 建立复用制度 225 7.5 质量保证和度量 226 7.5.1 软件质量 226 7.5.2 面向对象度量 226 7.6 文档化 229 7.6.1 开发遗产 229 7.6.2 文档化的内容 229 7.7 工具 230 7.7.1 工具种类 230 7.7.2 组织上的意义 231 7.8 特殊主题 231 7.8.1 领域特定问题 231 7.8.2 采纳面向对象技术 232 7.9 面向对象开发的好处和风险 233 7.9.1 面向对象开发的好处 233 7.9.2 面向对象开发的风险 233 7.10 小结 235 第3部分 应用 第8章 系统架构——基于卫星的导航 238 8.1 先启 238 8.1.1 卫星导航系统的需求 239 8.1.2 定义问题的边界 240 8.1.3 决定使命用例 243 8.1.4 决定系统用例 245 8.2 精化 248 8.2.1 开发一个好的架构 248 8.2.2 定义架构开发活动 248 8.2.3 验证所建议的系统架构 249 8.2.4 分配非功能需求和阐明接口 255 8.2.5 规定系统架构及其部署 257 8.2.6 分解系统架构 259 8.3 构造 265 8.4 后移交 265 8.4.1 添加新的功能 265 8.4.2 改变目标硬件 266 第9章 控制系统——交通管理 267 9.1 先启 268 9.1.1 列车交通管理系统的需求 268 9.1.2 决定系统用例 270 9.2 精化 273 9.2.1 分析系统功能 274 9.2.2 定义TTMS架构 277 9.2.3 从系统工程到硬件和软件工程 279 9.2.4 关键抽象和机制 281 9.3 构造 282 9.3.1 消息传送 283 9.3.2 列车日程计划 285 9.3.3 显示信息 288 9.3.4 传感器数据采集 289 9.3.5 发布版本管理 289 9.3.6 系统架构 290 9.3.7 子系统规格 291 9.4 后移交 293 第10章 人工智能——密码分析 294 10.1 先启 295 10.1.1 密码分析需求 295 10.1.2 定义问题的边界 296 10.1.3 黑板框架的架构 297 10.1.4 知识源的分析 299 10.2 精化 299 10.2.1 黑板对象 300 10.2.2 依赖和认定 301 10.3 构造 303 10.3.1 设计黑板对象 304 10.3.2 设计知识源 308 10.3.3 设计控制器 313 10.3.4 集成黑板框架 314 10.3.5 添加新的知识源 317 10.4 后移交 318 10.4.1 系统增强 318 10.4.2 改变需求 320 第11章 数据采集——气象监测站 321 11.1 先启 321 11.1.1 气象监测站需求 321 11.1.2 定义问题的边界 322 11.1.3 场景 330 11.2 精化 331 11.2.1 气象监测系统用例 331 11.2.2 架构框架 338 11.3 构造 340 11.3.1 帧机制 340 11.3.2 发布计划 343 11.3.3 传感器机制 344 11.3.4 显示机制 346 11.3.5 用户界面机制 346 11.4 后移交 349 第12章 Web应用——休假跟踪系统 350 12.1 先启 350 12.1.1 需求 350 12.1.2 用例模型 352 12.2 精化 353 12.2.1 部署视图 354 12.2.2 逻辑视图 355 12.2.3 进程视图 357 12.2.4 实现视图 359 12.2.5 用例视图 359 12.3 构造 362 12.3.1 用户体验模型 362 12.3.2 分析和设计模型 364 12.3.3 实体 372 12.3.4 控制器 379 12.3.5 Web页面和用户界面 380 12.4 移交和后移交 384 附录A 面向对象编程语言 386 A.1 语言进化 386 A.2 Smalltalk 389 A.2.1 概述 390 A.2.2 例子 390 A.2.3 参考文献 393 A.3 C++ 393 A.3.1 概述 394 A.3.2 例子 394 A.3.3 参考文献 397 A.4 Java 397 A.4.1 概述 398 A.4.2 例子 399 A.4.3 参考文献 402 附录B 进一步阅读 403 注解 409 术语表 430 分类书目 438

2012-08-11

敏捷软件开发:原则、模式与实践(C#版).

第一部分 敏捷开发 第1章 敏捷实践  1.1 敏捷联盟  1.1.1 人和交互重于过程和工具  1.1.2 可以工作的软件重于面面俱到的文档  1.1.3 客户合作重于合同谈判  1.1.4 随时应对变化重于遵循计划 1.2 原则  1.3 结论 1.4 参考文献  第2章 极限编程概述  2.1 极限编程实践 2.1.1 完整团队  2.1.2 用户故事  2.1.3 短交付周期  2.1.4 验收测试  2.1.5 结对编程  2.1.6 测试驱动开发  2.1.7 集体所有权  2.1.8 持续集成  2.1.9 可持续的开发速度  2.1.10 开放的工作空间  2.1.11 计划游戏  2.1.12 简单设计  2.1.13 重构  2.1.14 隐喻  2.2 结论  2.3 参考文献  第3章 计划  3.1 初始探索  3.2 发布计划  3.3 迭代计划  3.4 定义“完成”  3.5 任务计划  3.6 迭代  3.7 跟踪  3.8 结论  3.9 参考文献  第4章 测试  4.1 测试驱动开发  4.1.1 测试优先设计的例子  4.1.2 测试促使模块之间隔离  4.1.3 意外获得的解耦合  4.2 验收测试  4.3 意外获得的构架  4.4 结论  4.5 参考文献  第5章 重构  5.1 素数产生程序:一个简单的重构示例  5.1.1 单元测试  5.1.2 重构  5.1.3 最后审视  5.2 结论  5.3 参考文献  第6章 一次编程实践  6.1 保龄球比赛  6.2 结论  第二部分 敏捷设计 第7章 什么是敏捷设计  7.1 设计臭味  7.1.1 设计臭味——腐化软件的气味  7.1.2 僵化性  7.1.3 脆弱性  7.1.4 顽固性  7.1.5 粘滞性  7.1.6 不必要的复杂性  7.1.7 不必要的重复  7.1.8 晦涩性  7.2 软件为何会腐化  7.3 Copy程序  7.3.1 熟悉的场景  7.3.2 Copy程序的敏捷设计  7.4 结论  7.5 参考文献  第8章 SRP:单一职责原则  8.1 定义职责  8.2 分离耦合的职责  8.3 持久化  8.4 结论  8.5 参考文献  第9章 OCP:开放-封闭原则  9.1 OCP概述  9.2 Shape应用程序  9.2.1 违反OCP  9.2.2 遵循OCP  9.2.3 预测变化和“贴切的”结构  9.2.4 放置吊钩  9.2.5 使用抽象获得显式封闭  9.2.6 使用“数据驱动”的方法获取封闭性  9.3 结论  9.4 参考文献  第10章 LSP:Liskov替换原则  10.1 违反LSP的情形  10.1.1 简单例子  10.1.2 更微妙的违反情形  10.1.3 实际的例子  10.2 用提取公共部分的方法代替继承  10.3 启发式规则和习惯用法  10.4 结论  10.5 参考文献  第11章 DIP:依赖倒置原则  11.1 层次化  11.1.1 倒置的接口所有权  11.1.2 依赖于抽象  11.2 简单的DIP示例 11.3 熔炉示例  11.4 结论  11.5 参考文献  第12章 ISP:接口隔离原则  12.1 接口污染  12.2 分离客户就是分离接口  12.3 类接口与对象接口  12.3.1 使用委托分离接口  12.3.2 使用多重继承分离接口  12.4 ATM用户界面的例子  12.5 结论  12.6 参考文献  第13章 C#程序员UML概观  13.1 类图  13.2 对象图  13.3 顺序图  13.4 协作图  13.5 状态图  13.6 结论  13.7 参考文献  第14章 使用UML  14.1 为什么建模  14.1.1 为什么构建软件模型  14.1.2 编码前应该构建面面俱到的设计吗  14.2 有效使用UML  14.2.1 与他人交流  14.2.2 脉络图  14.2.3 项目结束文档 14.2.4 要保留的和要丢弃的  14.3 迭代式改进  14.3.1 行为优先  14.3.2 检查结构  14.3.3 想象代码  14.3.4 图的演化  14.4 何时以及如何绘制图示  14.4.1 何时要画图,何时不要画图  14.4.2 CASE工具  14.4.3 那么,文档呢  14.5 结论  第15章 状态图  15.1 基础知识  15.1.1 特定事件  15.1.2 超状态  15.1.3 初始伪状态和结束伪状态  15.2 使用FSM图示  15.3 结论  第16章 对象图  16.1 即时快照  16.2 主动对象  16.3 结论  第17章 用例  17.1 编写用例  17.1.1 备选流程  17.1.2 其他东西呢  17.2 用例图  17.3 结论  17.4 参考文献  第18章 顺序图  18.1 基础知识  18.1.1 对象、生命线、消息及其他  18.1.2 创建和析构  18.1.3 简单循环  18.1.4 时机和场合  18.2 高级概念  18.2.1 循环和条件  18.2.2 耗费时间的消息  18.2.3 异步消息  18.2.4 多线程  18.2.5 主动对象  18.2.6 向接口发送消息  18.3 结论  第19章 类图  19.1 基础知识  19.1.1 类  19.1.2 关联  19.1.3 继承  19.2 类图示例  19.3 细节  19.3.1 类衍型  19.3.2 抽象类  19.3.3 属性  19.3.4 聚集  19.3.5 组合  19.3.6 多重性  19.3.7 关联衍型  19.3.8 内嵌类  19.3.9 关联类  19.3.10 关联修饰符  19.4 结论  19.5 参考文献  第20章 咖啡的启示  20.1 MarkIV型专用咖啡机  20.1.1 规格说明书  20.1.2 常见的丑陋方案  20.1.3 虚构的抽象  20.1.4 改进方案  20.1.5 实现抽象模型  20.1.6 这个设计的好处  20.2 面向对象过度设计  20.3 参考文献  第三部分 薪水支付案例研究 第21章 COMMAND模式和ACTIVEOBJECT模式:多功能与多任务  21.1 简单的Command  21.2 事务  21.2.1 实体上解耦和时间上解耦  21.2.2 时间上解耦  21.3 Undo()方法  21.4 ACTIVEOBJECT模式  21.5 结论  21.6 参考文献  第22章 TEMPLATEMETHOD模式和STRATEGY模式:继承和委托  22.1 TEMPLATEMETHOD模式  22.1.1 滥用模式  22.1.2 冒泡排序  22.2 STRATEGY模式  22.3 结论  22.4 参考文献  第23章 FACADE模式和MEDIATOR模式  23.1 FACADE模式  23.2 MEDIATOR模式  23.3 结论  23.4 参考文献  第24章 SINGLETON模式和MONOSTATE模式  24.1 SINGLETON模式  24.1.1 SINGLETON模式的好处  24.1.2 SINGLETON模式的代价  24.1.3 运用SINGLETON模式  24.2 MONOSTATE模式  24.2.1 MONOSTATE模式的好处  24.2.2 MONOSTATE模式的代价  24.2.3 运用MONOSTATE模式  24.3 结论 24.4 参考文献  第25章 NULLOBJECT模式 25.1 描述  25.2 结论  25.3 参考文献  第26章 薪水支付案例研究:第一次迭代开始  26.1 初步的规格说明  26.2 基于用例分析  26.2.1 增加新雇员  26.2.2 删除雇员  26.2.3 登记考勤卡  26.2.4 登记销售凭条  26.2.5 登记工会服务费  26.2.6 更改雇员明细  26.2.7 发薪日  26.3 反思:找出底层的抽象  26.3.1 雇员支付类别抽象  26.3.2 支付时间表抽象  26.3.3 支付方式  26.3.4 从属关系  26.4 结论  26.5 参考文献  第27章 薪水支付案例研究:实现  27.1 事务  27.1.1 增加雇员  27.1.2 删除雇员  27.1.3 考勤卡、销售凭条以及服务费用  27.1.4 更改雇员属性  27.1.5 犯了什么晕  27.1.6 支付雇员薪水  27.1.7 支付领月薪的雇员薪水  27.1.8 支付钟点工薪水  27.2 主程序  27.3 数据库  27.4 结论  27.5 关于本章  27.6 参考文献  第四部分 打包薪水支付系统 第28章 包和组件的设计原则  28.1 包和组件  28.2 组件的内聚性原则:粒度  28.2.1 重用—发布等价原则  28.2.2 共同重用原则  28.2.3 共同封闭原则  28.2.4 组件内聚性总结  28.3 组件的耦合性原则:稳定性  28.3.1 无环依赖原则  28.3.2 稳定依赖原则  28.3.3 稳定抽象原则  28.4 结论  第29章 FACTORY模式  29.1 依赖问题  29.2 静态类型与动态类型  29.3 可替换的工厂  29.4 对测试支架使用对象工厂  29.5 工厂的重要性  29.6 结论  29.7 参考文献  第30章 薪水支付案例研究:包分析  30.1 组件结构和符号  30.2 应用CCP  30.3 应用REP  30.4 耦合和封装  30.5 度量  30.6 度量薪水支付应用程序  30.6.1 对象工厂  30.6.2 重新思考内聚的边界  30.7 最终的包结构  30.8 结论  30.9 参考文献  第31章 COMPOSITE模式  31.1 组合命令  31.2 多重性还是非多重性  31.3 结论  第32章 OBSERVER——演化至模式  32.1 数字时钟  32.2 OBSERVER模式  32.2.1 模型  32.2.2 面向对象设计原则的运用  32.3 结论  32.4 参考文献  第33章 ABSTRACTSERVER模式、ADAPTER模式和BRIDGE模式  33.1 ABSTRACTSERVER模式  33.2 ADAPTER模式  33.2.1 类形式的ADAPTER模式 33.2.2 调制解调器问题、适配器以及LSP  33.3 BRIDGE模式 33.4 结论  33.5 参考文献  第34章 PROXY模式和GATEWAY模式:管理第三方API  34.1 PROXY模式  34.1.1 实现PROXY模式  34.1.2 小结  34.2 数据库、中间件以及其他第三方接口  34.3 TABLEDATAGATEWAY  34.3.1 测试和内存TDG  34.3.2 测试DbGateWay  34.4 可以用于数据库的其他模式  34.5 结论  34.6 参考文献  第35章 VISITOR模式  35.1 VISITOR模式  35.2 ACYCLICVISITOR模式  35.3 DECORATOR模式  35.4 EXTENSIONOBJECT模式  35.5 结论  35.6 参考文献  第36章 STATE模式  36.1 嵌套switch/case语句  36.1.1 内部作用域的状态变量  36.1.2 测试动作  36.1.3 代价和收益  36.2 迁移表  36.2.1 使用表解释 36.2.2 代价和收益  36.3 STATE模式 36.3.1 STATE模式和STRATEGY模式  36.3.2 代价和收益  36.4 状态机编译器  36.4.1 SMC生成的Turnstile.cs以及其他支持文件  36.4.2 代价和收益  36.5 状态机应用的场合  36.5.1 作为GUI中的高层应用策略  36.5.2 GUI交互控制器  36.5.3 分布式处理  36.6 结论  36.7 参考文献  第37章 薪水支付案例研究:数据库  37.1 构建数据库  37.2 一个代码设计缺陷  37.3 增加雇员  37.4 事务  37.5 加载Employee对象  37.6 还有什么工作  第38章 薪水支付系统用户界面:Model-View-Presenter  38.1 界面  38.2 实现  38.3 构建窗口  38.4 Payroll窗口  38.5 真面目  38.6 结论  38.7 参考文献  附录A 双公司记  Rufus公司:“日落”项目  Rupert工业公司:“朝晖”项目  附录B 什么是软件  索引

2012-08-11

领域驱动设计C# 2008实现问题.设计.解决方案

第1章 介绍项目:smartga系统 1.1 问题 1.2 设计 1.2.1 可靠性和可得性 1.2.2伸缩性 1.2.3 可维护性 1.2.4 富客户应用功能 1.2.5 离线可得 1.2.6 web访问 1.2.7 智能安装和自动更新功能 1.2.8 附加客户设备支持 1.3 解决方案 1.3.1 满足可靠性、可得性、伸缩性、离线可得和附加客户设备支持需求 1.3.2 满足可维护性需求 1.3.3 满足富客户应用功能需求 1.3.4 满足web访问需求 1.3.5 满足智能安装和自动更新功能需求 1.4 总结 第2章 设计分层架构 2.1 问题 .2.2 设计 2.2.1 设计visual studio解决方案 2.2.2 设计基础设施层 2.3 解决方案 2.3.1 实现visual studio解决方案 2.3.2 实现架构层 2.4 总结 第3章 管理项目 3.1 问题 3.2 设计 3.2.1 设计领域模型 3.2.2 定义项目聚合 3.2.3 定义聚合边界 3.2.4 设计仓储 3.2.5 编写单元测试 3.3 解决方案 3.3.1 project类 3.3.2 实现仓储 3.3.3 实现服务类 3.3.4 实现项目信息视图模型 3.3.5 实现项目信息视图 3.4 总结 第4章 公司和联系人 4.1 问题 4.2 设计 4.2.1 设计领域模型 4.2.2 定义company聚合和contact聚合 4.2.3 定义聚合边界 4.2.4 设计仓储 4.2.5 编写单元测试 4.3 解决方案 4.3.1 company类 4.3.2 contact类 4.3.3 projectcontact类 4.3.4 实现仓储 4.3.5 实现服务类 4.3.6 company视图模型 4.3.7 company视图 4.3.8 项目联系人视图模型 4.3.9 项目联系人视图 4.4 总结 第5章 递交传送 5.1 问题 5.2 设计 5.2.1 设计领域模型 5.2.2 定义submittal聚合 5.2.3 定义聚合边界 5.2.4 设计仓储 5.2.5 编写单元测试 5.3 解决方案 5.3.1 实现submittal仓储 5.3.2 实现submittal服务类 5.3.3 submittal视图模型 5.3.4 submittal视图 5.4 总结 第6章 信息请求 6.1 问题 6.2 设计 6.2.1 设计领域模型 6.2.2 定义rfi聚合 6.2.3 定义聚合边界 6.2.4 设计仓储 6.2.5 编写单元测试 6.3 解决方案 6.3.1 实现rfi仓储 6.3.2 实现rfi服务类 6.3.3 rfi视图模型类 6.3.4 rfi视图 6.4 总结 第7章 提案请求 7.1 问题 7.2 设计 7.2.1 设计领域模型 7.2.2 设计提案请求聚合 7.2.3 定义聚合边界 7.2.4 设计仓储 7.2.5 编写单元测试 7.3 解决方案 7.3.1 提案请求类的私有字段和构造器 7.3.2 proposalrequest属性 7.3.3 validate方法 7.3.4 实现提案请求仓储 7.3.5 实现提案请求服务类 7.3.6 提案请求视图模型类 7.3.7 提案请求视图 7.4 总结 第8章更改单 8.1 问题 8.2 设计 8.2.1 设计领域模型 8.2.2 设计更改单聚合 8.2.3 定义聚合边界 8.2.4 设计仓储 8.2.5 编写单元测试 8.3 解决方案 8.3.1 实现更改单仓储 8.3.2 实现更改单服务类 8.3.3 更改单视图模型类 8.3.4 更改单视图 8.4 总结 第9章 施工更改指令 9.1 问题 9.2 设计 9.2.1 设计领域模型 9.2.2 设计施工更改指令聚合 9.2.3 定义聚合边界 9.2.4 设计仓储 9.2.5 编写单元测试 9.3 解决方案 9.3.1 施工更改指令类的私有字段和构造器 9.3.2 实现施工更改指令仓储 9.3.3 实现施工更改指令服务类 9.3.4 施工更改指令视图模型类 9.3.5 施工更改指令视图 9.4 总结 第10章 和服务器同步 10.1 问题 10.2 设计 10.2.1 重新设计工作单元 10.2.2 设计同步 10.2.3 编写单元测试 10.3 解决方案 10.3.1 工作单元重构 10.3.2 和synchronizer类同步 10.4 总结 第11章 客户会员管理系统 11.1 问题 11.2 设计 11.2.1 密码安全 11.2.2 设计客户会员管理系统 11.3 解决方案 11.3.1 客户会员管理系统领域模型类 11.3.2 客户会员管理系统单元测试 11.4 总结

2012-08-11

领域驱动设计与模式实战

第一部分 背景知识 第1章 应重视的价值,也是对过去几年的沉重反思 1.1 总体价值 1.2 应重视的架构风格 1.2.1 焦点之一:模型 1.2.2 焦点之二:用例 1.2.3 如果重视模型,就可以使用领域模型模式 1.2.4 慎重处理数据库 1.2.5 领域模型与关系数据库之间的阻抗失配 1.2.6 谨慎处理分布式 1.2.7 消息传递很重要 1.3 对过程的各个组成部分的评价 1.3.1 预先架构设计 1.3.2 领域驱动设计 1.3.3 测试驱动开发 1.3.4 重构 1.3.5 选择一种还是选择组合 1.4 持续集成 1.4.1 解决方案(或至少是正确方向上的一大步) 1.4.2 从我的组织汲取的教训 1.4.3 更多信息 1.5 不要忘记运行机制 1.5.1 有关何时需要运行机制的一个例子 1.5.2 运行机制的一些例子 1.5.3 它不仅仅是我们的过错 1.6 小结 第2章 模式起步 2.1 模式概述 2.1.1 为什么要学习模式 2.1.2 在模式方面要注意哪些事情 2.2 设计模式 2.3 架构模式 2.3.1 示例:层 2.3.2 另一个示例:领域模型模式 2.4 针对具体应用程序类型的设计模式 2.5 领域模式 2.6 小结 第3章 TDD与重构 3.1 TDD 3.1.1 TDD流程 3.1.2 演示 3.1.3 设计效果 3.1.4 问题 3.1.5 下一个阶段 3.2 模拟和桩 3.2.1 典型单元测试 3.2.2 声明独立性 3.2.3 处理困难因素 3.2.4 用测试桩替换协作对象 3.2.5 用模拟对象替换协作对象 3.2.6 设计含义 3.2.7 结论 3.2.8 更多信息 3.3 重构 3.4 小结 第二部分 应用DDD 第4章 新的默认架构 4.1 新的默认架构的基础知识 4.1.1 从以数据库为中心过渡到以领域模型为中心 4.1.2 进一步关注DDD 4.1.3 根据DDD进行分层 4.2 轮廓 4.2.1 领域模型示例的问题/特性 4.2.2 逐个处理特性 4.2.3 到目前为止的领域模型 4.3 初次尝试将UI与领域模型挂接 4.3.1 基本目标 4.3.2 简单UI的当前焦点 4.3.3 为客户列出订单 4.3.4 添加订单 4.3.5 刚才我们看到了什么 4.4 另一个维度 4.4.1 领域模型的位置 4.4.2 孤立或共享的实例 4.4.3 有状态或无状态领域模型实例化 4.4.4 领域模型的完整实例化或子集实例化 4.5 小结 第5章 领域驱动设计进阶 5.1 通过简单的TDD实验来精化领域模型 5.1.1 从Order和OrderFactory的创建开始 5.1.2 一些领域逻辑 5.1.3 第二个任务:OrderRepository+OrderNumber 5.1.4 重建持久化的实体:如何从外部设置值 5.1.5 获取订单列表 5.1.6 该到讨论实体的时候了 5.1.7 再次回到流程上来 5.1.8 总览图 5.1.9 建立OrderRepository的伪实现 5.1.10 简单讨论一下保存 5.1.11 每个订单的总量 5.1.12 历史客户信息 5.1.13 实例的生命周期 5.1.14 订单类型 5.1.15 订单的介绍人 5.2 连贯接口 5.3 小结 第6章 准备基础架构 6.1 将POCO作为工作方式 6.1.1 实体和值对象的PI 6.1.2 是否使用PI 6.1.3 运行时与编译时PI 6.1.4 PI实体/值对象的代价 6.1.5 将PI用于存储库 6.1.6 单组存储库的代价 6.2 对保存场景的处理 6.3 建立伪版本机制 6.3.1 伪版本机制的更多特性 6.3.2 伪版本的实现 6.3.3 影响单元测试 6.4 数据库测试 6.4.1 在每次测试之前重置数据库 6.4.2 在测试运行期间保持数据库的状态 6.4.3 测试之前重置测试所使用的数据 6.4.4 不要忘记不断演变的模式 6.4.5 分离单元测试和数据库调用测试 6.5 查询 6.5.1 单组查询对象 6.5.2 单组查询对象的代价 6.5.3 将查询定位到哪里 6.5.4 再次将聚合作为工具 6.5.5 将规格用于查询 6.5.6 其他查询选择 6.6 小结 第7章 应用规则 7.1 规则的分类 7.2 规则的原则及用法 7.2.1 双向规则检查:可选的(可能的)主动检查,必需的(和自动的)被动检查 7.2.2 所有状态(即使是错误状态)都应该是可保存的 7.2.3 规则应该高效使用 7.2.4 规则应该是可配置的,以便添加自定义规则 7.2.5 规则应与状态放在一起 7.2.6 规则应该具有很高的可测试性 7.2.7 系统应阻止我们进入错的状态 7.3 开始创建API 7.3.1 上下文,上下文,还是上下文 7.3.2 数据库约束 7.3.3 将规则绑定到与领域有关的转换,还是绑定到与基础架构有关的转换 7.3.4 精化原则:所有状态,即使是错误状态,都应该是可保存的 7.4 与持久化有关的基本的规则API的需求 7.4.1 回到已发现的API问题上 7.4.2 问题是什么 7.4.3 我们允许了不正确的转换 7.4.4 如果忘记检查怎么办 7.5 关注与领域有关的规则 7.5.1 需要合作的规则 7.5.2 使用基于集合的处理方法 7.5.3 基于服务的验证 7.5.4 在不应该转换时尝试转换 7.5.5 业务ID 7.5.6 避免问题 7.5.7 再次将聚合作为工具 7.6 扩展API 7.6.1 查询用于设置UI的规则 7.6.2 使注入规则成为可能 7.7 对实现进行精化 7.7.1 一个初步实现 7.7.2 创建规则类,离开最不成熟的阶段 7.7.3 设置规则列表 7.7.4 使用规则列表 7.7.5 处理子列表 7.7.6 一个API改进 7.7.7 自定义 7.7.8 为使用者提供元数据 7.7.9 是否适合用模式来解决此问题 7.7.10 复杂规则又是什么情况 7.8 绑定到持久化抽象 7.8.1 使验证接口成为可插入的 7.8.2 在保存方面实现被动验证的替代解决方案 7.8.3 重用映射元数据 7.9 使用泛型和匿名方法 7.10 其他人都做了什么 7.11 小结 第三部分 应用PoEAA 第8章 用于持久化的基础架构 8.1 持久化基础架构的需求 8.2 将数据存储到哪里 8.2.1 RAM 8.2.2 文件系统 8.2.3 对象数据库 8.2.4 关系数据库 8.2.5 使用一个还是多个资源管理器 8.2.6 其他因素 8.2.7 选择和前进 8.3 方法 8.3.1 自定义手工编码 8.3.2 自定义代码的代码生成 8.3.3 元数据映射(对象关系(O/R)映射工具) 8.3.4 再次选择 8.4 分类 8.4.1 领域模型风格 8.4.2 映射工具风格 8.4.3 起点 8.4.4 API焦点 8.4.5 查询风格 8.4.6 高级数据库支持 8.4.7 其他功能 8.5 另一个分类:基础架构模式 8.5.1 元数据映射:元数据的类型 8.5.2 标识字段 8.5.3 外键映射 8.5.4 嵌入值 8.5.5 继承解决方案 8.5.6 标识映射 8.5.7 操作单元 8.5.8 延迟加载/立即加载 8.5.9 并发控制 8.6 小结 第9章 应用NHibernate 9.1 为什么使用NHibernate 9.2 NHibernate简介 9.2.1 准备 9.2.2 一些映射元数据 9.2.3 一个小的API示例 9.2.4 事务 9.3 持久化基础架构的需求 9.3.1 高级持久化透明 9.3.2 持久化实体的生命周期所需的特定特性 9.3.3 谨慎处理关系数据库 9.4 分类 9.4.1 领域模型风格 9.4.2 映射工具风格 9.4.3 起点 9.4.4 API焦点 9.4.5 查询语言风格 9.4.6 高级数据库支持 9.4.7 其他功能 9.5 另一种分类:基础架构模式 9.5.1 元数据映射:元数据类型 9.5.2 标识字段 9.5.3 外键映射 9.5.4 嵌入值 9.5.5 继承解决方案 9.5.6 标识映射 9.5.7 操作单元 9.5.8 延迟加载/立即加载 9.5.9 并发性控制 9.5.10 额外功能:验证挂钩 9.6 NHibernate和DDD 9.6.1 程序集概览 9.6.2 ISession和存储库 9.6.3 ISession、存储库和事务 9.6.4 得到了什么结果 9.7 小结 第四部分 下一步骤 第10章 博采其他设计技术 10.1 上下文为王 10.1.1 层和分区 10.1.2 分区的原因 10.1.3 限界上下文 10.1.4 限界上下文与分区有何关联 10.1.5 向上扩展DDD项目 10.1.6 为什么对领域模型——SO分区 10.2 SOA简介 10.2.1 什么是SOA 10.2.2 为什么需要SOA 10.2.3 SOA有什么不同 10.2.4 什么是服务 10.2.5 服务中包括什么 10.2.6 深入分析4条原则 10.2.7 再来看一下什么是服务 10.2.8 OO在SOA中的定位 10.2.9 客户-服务器和SOA 10.2.10 单向异步消息传递 10.2.11 SOA如何提高可伸缩性 10.2.12 SOA服务的设计 10.2.13 服务之间如何交互 10.2.14 SOA和不可用的服务 10.2.15 复杂的消息传递处理 10.2.16 服务的可伸缩性 10.2.17 小结 10.3 控制反转和依赖注入 10.3.1 任何对象都不是孤岛 10.3.2 工厂、注册类和服务定位器 10.3.3 构造方法依赖注入 10.3.4 setter依赖注入 10.3.5 控制反转 10.3.6 使用了Spring.NET框架的依赖注入 10.3.7 利用PicoContainer.NET进行自动装配 10.3.8 嵌套容器 10.3.9 服务定位器与依赖注入的比较 10.3.10 小结 10.4 面向方面编程 10.4.1 热门话题有哪些 10.4.2 AOP术语定义 10.4.3 .NET中的AOP 10.4.4 小结 10.5 小结 第11章 关注UI 11.1 提前结语 11.2 模型-视图-控制器模式 11.2.1 示例:Joe的Shoe Shop程序 11.2.2 通过适配器简化视图界面 11.2.3 将控制器从视图解耦 11.2.4 将视图和控制器结合起来 11.2.5 是否值得使用MVC 11.3 测试驱动的Web窗体 11.3.1 背景 11.3.2 一个示例 11.3.3 领域模型 11.3.4 GUI的TDD 11.3.5 Web窗体实现 11.3.6 小结 11.3.7 用NMock创建模拟 11.4 映射和包装 11.4.1 映射和包装 11.4.2 用表示模型来包装领域模型 11.4.3 将表示模型映射到领域模型 11.4.4 管理关系 11.4.5 状态问题 11.4.6 最后的想法 11.5 小结 11.6 结束语 第五部分 附录 附录A 其他领域模型风格 附录B 已讨论的模式的目录

2012-08-09

企业应用架构模式

译者序 前言 模式列表 引言 1 0.1 架构 1 0.2 企业应用 2 0.3 企业应用的种类 3 0.4 关于性能的考虑 4 0.5 模式 6 0.5.1 模式的结构 7 0.5.2 模式的局限性 9 第一部分 表述 第1章 分层 12 1.1 企业应用中层次的演化 13 1.2 三个基本层次 14 1.3 为各层选择运行环境 15 第2章 组织领域逻辑 19 2.1 抉择 22 2.2 服务层 23 第3章 映射到关系数据库 25 .3.1 架构模式 25 3.2 行为问题 28 3.3 读取数据 29 3.4 结构映射模式 30 3.4.1 关系的映射 30 3.4.2 继承 33 3.5 建立映射 34 3.6 使用元数据 35 3.7 数据库连接 36 3.8 其他问题 38 3.9 进一步阅读 38 第4章 Web表现层 39 4.1 视图模式 41 4.2 输入控制器模式 43 4.3 进一步阅读 43 第5章 并发 45 5.1 并发问题 45 5.2 执行语境 46 5.3 隔离与不变性 47 5.4 乐观并发控制和悲观并发控制 48 5.4.1 避免不一致读 49 5.4.2 死锁 49 5.5 事务 50 5.5.1 ACID 51 5.5.2 事务资源 51 5.5.3 减少事务隔离以提高灵活性 52 5.5.4 业务事务和系统事务 53 5.6 离线并发控制的模式 54 5.7 应用服务器并发 55 5.8 进一步阅读 56 第6章 会话状态 57 6.1 无状态的价值 57 6.2 会话状态 58 6.3 存储会话状态的方法 59 第7章 分布策略 61 7.1 分布对象的诱惑 61 7.2 远程接口和本地接口 62 7.3 必须使用分布的情况 63 7.4 关于分布边界 64 7.5 分布接口 64 第8章 通盘考虑 67 8.1 从领域层开始 67 8.2 深入到数据源层 68 8.2.1 事务脚本的数据源 68 8.2.2 表模块的数据源 69 8.2.3 领域模型的数据源 69 8.3 表现层 69 8.4 一些关于具体技术的建议 70 8.4.1 Java和J2EE 70 8.4.2 .NET 71 8.4.3 存储过程 71 8.4.4 Web Services 72 8.5 其他分层方式 72 第二部分 模 式 第9章 领域逻辑模式 76 9.1 事务脚本(Transaction Script) 76 9.1.1 运行机制 76 9.1.2 使用时机 77 9.1.3 收入确认问题 78 9.1.4 例:收入确认(Java) 78 9.2 领域模型(Domain Model) 81 9.2.1 运行机制 81 9.2.2 使用时机 83 9.2.3 进一步阅读 83 9.2.4 例:收入确认(Java) 84 9.3 表模块(Table Module) 87 9.3.1 运行机制 88 9.3.2 使用时机 90 9.3.3 例:基于表模块的收入确认(C#) 90 9.4 服务层(Service Layer) 93 9.4.1 运行机制 94 9.4.2 使用时机 96 9.4.3 进一步阅读 96 9.4.4 例:收入确认(Java) 96 第10章 数据源架构模式 101 10.1 表数据入口(Table Data Gateway) 101 10.1.1 运行机制 101 10.1.2 使用时机 102 10.1.3 进一步阅读 102 10.1.4 例:人员入口(C#) 103 10.1.5 例:使用ADO.NET数据集(C#) 104 10.2 行数据入口(Row Data Gateway) 106 10.2.1 运行机制 107 10.2.2 使用时机 108 10.2.3 例:人员记录(Java) 108 10.2.4 例:领域对象的数据保持器(Java) 111 10.3 活动记录(Active Record) 112 10.3.1 运行机制 112 10.3.2 使用时机 113 10.3.3 例:一个简单的Person类(Java) 113 10.4 数据映射器(Data Mapper) 115 10.4.1 运行机制 116 10.4.2 使用时机 119 10.4.3 例:一个简单的数据映射器(Java) 119 10.4.4 例:分离查找方法(Java) 123 10.4.5 例:创建一个空对象(Java) 126 第11章 对象-关系行为模式 129 11.1 工作单元(Unit of Work) 129 11.1.1 运行机制 129 11.1.2 使用时机 133 11.1.3 例:使用对象注册的工作单元(Java) 134 11.2 标识映射(Identity Map) 137 11.2.1 运行机制 137 11.2.2 使用时机 139 11.2.3 例:标识映射中的方法(Java) 139 11.3 延迟加载(Lazy Load) 140 11.3.1 运作机制 140 11.3.2 使用时机 142 11.3.3 例:延迟初始化(Java) 142 11.3.4 例:虚代理(Java) 142 11.3.5 例:使用值保持器(Java) 144 11.3.6 例:使用重影(C#) 144 第12章 对象-关系结构模式 151 12.1 标识域(Identity Field) 151 12.1.1 工作机制 151 12.1.2 使用时机 154 12.1.3 进一步阅读 154 12.1.4 例:整型键(C#) 154 12.1.5 例:使用键表(Java) 155 12.1.6 例:使用组合键(Java) 157 12.2 外键映射(Foreign Key Mapping) 166 12.2.1 运行机制 167 12.2.2 使用时机 169 12.2.3 例:单值引用(Java) 169 12.2.4 例:多表查询(Java) 172 12.2.5 例:引用集合(C#) 173 12.3 关联表映射(Association Table Mapping) 175 12.3.1 运行机制 176 12.3.2 使用时机 176 12.3.3 例:雇员和技能(C#) 177 12.3.4 例:使用直接的SQL(Java) 179 12.3.5 例:用一次查询查多个雇员(Java) 182 12.4 依赖映射(Dependent Mapping) 186 12.4.1 运行机制 186 12.4.2 使用时机 187 12.4.3 例:唱片和曲目(Java) 188 12.5 嵌入值(Embedded Value) 190 12.5.1 运行机制 190 12.5.2 使用时机 190 12.5.3 进一步阅读 191 12.5.4 例:简单值对象(Java) 191 12.6 序列化LOB(Serialized LOB) 192 12.6.1 运行机制 193 12.6.2 使用时机 194 12.6.3 例:在XML中序列化一个部门层级(Java) 194 12.7 单表继承(Single Table Inheritance) 196 12.7.1 运行机制 197 12.7.2 使用时机 197 12.7.3 例:运动员的单表(C#) 198 12.7.4 从数据库中加载对象 199 12.8 类表继承(Class Table Inheritance) 202 12.8.1 运行机制 202 12.8.2 使用时机 203 12.8.3 进一步阅读 203 12.8.4 例:运动员和他们的家属(C#) 203 12.9 具体表继承(Concrete Table Inheritance) 208 12.9.1 运行机制 209 12.9.2 使用时机 210 12.9.3 例:具体运动员(C#) 210 12.10 继承映射器(Inheritance Mappers) 214 12.10.1 运行机制 215 12.10.2 使用时机 216 第13章 对象-关系元数据映射模式 217 13.1 元数据映射(Metadata Mapping) 217 13.1.1 运行机制 217 13.1.2 使用时机 218 13.1.3 例:使用元数据和反射(Java) 219 13.2 查询对象(Query Object) 224 13.2.1 运行机制 225 13.2.2 使用时机 225 13.2.3 进一步阅读 226 13.2.4 例:简单的查询对象(Java) 226 13.3 资源库(Repository) 228 13.3.1 运行机制 229 13.3.2 使用时机 230 13.3.3 进一步阅读 231 13.3.4 例:查找一个人所在的部门(Java) 231 13.3.5 例:资源库交换策略(Java) 231 第14章 Web表现模式 233 14.1 模型-视图-控制器(Model View Controller) 233 14.1.1 运行机制 233 14.1.2 使用时机 234 14.2 页面控制器(Page Controller) 235 14.2.1 运行机制 235 14.2.2 使用时机 236 14.2.3 例:Servlet控制器和JSP视图的简单演示(Java) 236 14.2.4 例:使用JSP充当处理程序(Java) 238 14.2.5 例:代码隐藏的页面控制器(C#) 241 14.3 前端控制器(Front Controller) 243 14.3.1 运行机制 244 14.3.2 使用时机 245 14.3.3 进一步阅读 246 14.3.4 例:简单的显示(Java) 246 14.4 模板视图(Template View) 248 14.4.1 运行机制 249 14.4.2 使用时机 251 14.4.3 例:分离的控制器,使用JSP充当视图(Java) 252 14.4.4 例:ASP.NET服务器页面(C#) 253 14.5 转换视图(Transform View) 256 14.5.1 运行机制 256 14.5.2 使用时机 257 14.5.3 例:简单的转换(Java) 257 14.6 两步视图(Two Step View) 259 14.6.1 运行机制 259 14.6.2 使用时机 260 14.6.3 例:两阶XSLT(XSLT) 264 14.6.4 例:JSP和定制标记(Java) 266 14.7 应用控制器(Application Controller) 269 14.7.1 运行机制 270 14.7.2 使用时机 271 14.7.3 进一步阅读 271 14.7.4 例:状态模型应用控制器(Java) 271 第15章 分布模式 275 15.1 远程外观(Remote Facade) 275 15.1.1 运行机制 276 15.1.2 使用时机 278 15.1.3 例:使用Java语言的会话bean来作为远程外观(Java) 278 15.1.4 例:Web Service(C#) 281 15.2 数据传输对象(Data Transfer Object) 285 15.2.1 运行机制 285 15.2.2 使用时机 288 15.2.3 进一步阅读 289 15.2.4 例:传输唱片信息(Java) 289 15.2.5 例:使用XML实现序列化(Java) 293 第16章 离线并发模式 295 16.1 乐观离线锁(Optimistic Offline Lock) 295 16.1.1 运行机制 296 16.1.2 使用时机 298 16.1.3 例:领域层与数据映射器(Java) 298 16.2 悲观离线锁(Pessimistic Offline Lock) 302 16.2.1 运行机制 303 16.2.2 使用时机 305 16.2.3 例:简单锁管理对象(Java) 305 16.3 粗粒度锁(Coarse-Grained Lock) 310 16.3.1 运行机制 310 16.3.2 使用时机 312 16.3.3 例:共享的乐观离线锁(Java) 312 16.3.4 例:共享的悲观离线锁(Java) 316 16.3.5 例:根对象乐观离线锁(Java) 317 16.4 隐含锁(Implicit Lock) 318 16.4.1 运行机制 318 16.4.2 使用时机 319 16.4.3 例:隐含的悲观离线锁(Java) 319 第17章 会话状态模式 321 17.1 客户会话状态(Client Session State) 321 17.1.1 运行机制 321 17.1.2 使用时机 322 17.2 服务器会话状态(Server Session State) 322 17.2.1 运行机制 322 17.2.2 使用时机 324 17.3 数据库会话状态(Database Session State) 324 17.3.1 运行机制 324 17.3.2 使用时机 325 第18章 基本模式 327 18.1 入口(Gateway) 327 18.1.1 运行机制 327 18.1.2 使用时机 328 18.1.3 例:私有消息服务的入口(Java) 329 18.2 映射器(Mapper) 331 18.2.1 运行机制 332 18.2.2 使用时机 332 18.3 层超类型(Layer Supertype) 332 18.3.1 运行机制 332 18.3.2 使用时机 333 18.3.3 例:领域对象(Java) 333 18.4 分离接口(Separated Interface) 333 18.4.1 运行机制 334 18.4.2 使用时机 335 18.5 注册表(Registry) 335 18.5.1 运行机制 336 18.5.2 使用时机 337 18.5.3 例:单子注册表(Java) 337 18.5.4 例:线程安全的注册表(Java) 338 18.6 值对象(Value Object) 339 18.6.1 运行机制 339 18.6.2 使用时机 340 18.7 货币(Money) 340 18.7.1 运行机制 341 18.7.2 使用时机 342 18.7.3 例:货币类(Java) 343 18.8 特殊情况(Special Case) 346 18.8.1 运行机制 347 18.8.2 使用时机 347 18.8.3 进一步阅读 347 18.8.4 例:一个简单的空对象(C#) 347 18.9 插件(Plugin) 348 18.9.1 运行机制 349 18.9.2 使用时机 350 18.9.3 例:ID生成器(Java) 350 18.10 服务桩(Service Stub) 352 18.10.1 运行机制 352 18.10.2 使用时机 353 18.10.3 例:销售税服务(Java) 353 18.11 记录集(Record Set) 355 18.11.1 运行机制 355 18.11.2 使用时机 356 参考文献 359

2012-08-08

C#设计模式

作  者:(美)库珀 著,张志华 等译 出 版 社:电子工业出版社 第一部分 C#面向对象程序设计 第1章 设计模式概述 第2章 C#语言的语法 第3章 用C#编写Windows程序 第4章 在C#中使用类和对象 第5章 继承 第6章 UML图 第7章 C#中的数组、文件和异常 第二部分 创建型模式 第8章 简单工厂模式 第9章 工厂方法模式 第10章 抽象工厂模式 第11章 单件模式 第12章 生成器模式 第13章 原型模式 第三部分 结构型模式 第14章 适配器模式 第15章 桥接模式 第16章 组合模式 第17章 装饰模式 第18章 外观模式 第19章 享元模式 第20章 代理模式 第四部分 行为型模式 第21章 职责链 第22章 命令模式 第23章 解释器模式 第24章 迭代器模式 第25章 中介者模式 第26章 备忘录模式 第27章 观察者模式 第28章 状态模式 第29章 策略模式 第30章 模板方法模式 第31章 访问者模式 参考文献

2012-08-05

C#设计模式大全

C#设计模式(1) 一、 C# 面向对象程序设计复习 二、 设计模式举例 三、 先有鸡还是先有蛋? 四、 大瓶子套小瓶子还是小瓶子套大瓶子? 五、 .net本质 C#设计模式(2) 一、 "开放-封闭"原则(OCP) 二、 里氏代换原则(LSP) C#设计模式(3) 三、 依赖倒置原则(DIP) 四、 接口隔离原则(ISP) 五、 合成/聚合复用原则(CARP) 六、 迪米特法则(LoD) C#设计模式(4)-Simple Factory Pattern 一、 简单工厂(Simple Factory)模式 二、 Simple Factory模式角色与结构: 三、 程序举例: 四、 Simple Factory模式演化 五、 优点与缺点: C#设计模式(5)-Factory Method Pattern 一、 工厂方法(Factory Method)模式 二、 Factory Method模式角色与结构: 三、 程序举例: 四、 工厂方法模式与简单工厂模式 五、 Factory Method模式演化 六、 Factory Method模式与其它模式的关系 七、 另外一个例子 C#设计模式(6)-Abstract Factory Pattern 一、 抽象工厂(Abstract Factory)模式 二、 Abstract Factory模式的结构: 三、 程序举例: 四、 在什么情形下使用抽象工厂模式: 五、 抽象工厂的起源 六、 Abstract Factory模式在实际系统中的实现 七、 "开放-封闭"原则 C#设计模式(7)-Singleton Pattern 一、 单例(Singleton)模式 二、 Singleton模式的结构: 三、 程序举例: 四、 在什么情形下使用单例模式: 五、 Singleton模式在实际系统中的实现 六、 C#中的Singleton模式 C#设计模式(8)-Builder Pattern 一、 建造者(Builder)模式 二、 Builder模式的结构: 三、 程序举例: 四、 建造者模式的活动序列: 五、 建造者模式的实现: 六、 建造者模式的演化 七、 在什么情况下使用建造者模式 C#设计模式(9)-Prototype Pattern 一、 原型(Prototype)模式 二、 Prototype模式的结构: 三、 程序举例: 四、 带Prototype Manager的原型模式 五、 浅拷贝与深拷贝 六、 Prototype模式的优点与缺点 C#设计模式(10)-Adapter Pattern 一、 适配器(Adapter)模式 二、 类的Adapter模式的结构: 三、 类的Adapter模式示意性实现: 四、 对象的Adapter模式的结构: 五、 对象的Adapter模式示意性实现: 六、 在什么情况下使用适配器模式 七、 一个实际应用Adapter模式的例子 八、 关于Adapter模式的讨论 C#设计模式(11)-Composite Pattern 一、 合成(Composite)模式 二、 合成模式概述 三、 安全式的合成模式的结构 四、 安全式的合成模式实现 五、 透明式的合成模式结构 六、 透明式的合成模式实现 七、 使用合成模式时考虑的几个问题 八、 和尚的故事 九、 一个实际应用Composite模式的例子 C#设计模式(12)-Decorator Pattern 一、 装饰(Decorator)模式 二、 装饰模式的结构 三、 装饰模式示例性代码 四、 装饰模式应当在什么情况下使用 五、 装饰模式实际应用的例子 六、 使用装饰模式的优点和缺点 七、 模式实现的讨论 八、 透明性的要求 九、 装饰模式在.NET中的应用 C#设计模式(13)-Proxy Pattern 一、 代理(Proxy)模式 二、 代理的种类 三、 远程代理的例子 四、 代理模式的结构 五、 代理模式示例性代码 六、 高老庄悟空降八戒 七、 不同类型的代理模式 八、 代理模式实际应用的例子 设计模式(14)-Flyweight Pattern 一、 享元(Flyweight)模式 二、 单纯享元模式的结构 三、 单纯享元模式的示意性源代码 四、 复合享元模式的结构 五、 一个咖啡摊的例子 六、 咖啡屋的例子 七、 享元模式应当在什么情况下使用 八、 享元模式的优点和缺点 设计模式(15)-Facade Pattern 一、 门面(Facade)模式 二、 门面模式的结构 三、 门面模式的实现 四、 在什么情况下使用门面模式 五、 一个例子 六、 使用门面模式的设计 设计模式(16)-Bridge Pattern 一、 桥梁(Bridge)模式 二、 桥梁模式的结构 三、 桥梁模式的示意性源代码 四、 调制解调器问题 五、 另外一个实际应用Bridge模式的例子 六、 在什么情况下应当使用桥梁模式 设计模式(17)-Chain of Responsibility Pattern 一、 职责链(Chain of Responsibility)模式 二、 责任链模式的结构 三、 责任链模式的示意性源代码 四、 纯的与不纯的责任链模式 五、 责任链模式的实际应用案例 六、 责任链模式的实现 设计模式(18)-Command Pattern 一、 命令(Command)模式 二、 命令模式的结构 三、 命令模式的示意性源代码 四、 玉帝传美猴王上天 五、 命令模式的实现 六、 命令模式的实际应用案例 七、 在什么情况下应当使用命令模式 八、 使用命令模式的优点和缺点 设计模式(19)-Observer Pattern 一、 观察者(Observer)模式 二、 观察者模式的结构 三、 观察者模式的示意性源代码 四、 C#中的Delegate与Event 五、 一个实际应用观察者模式的例子 六、 观察者模式的优缺点 设计模式(20)-Visitor Pattern 一、 访问者(Visitor)模式 二、 访问者模式的结构 三、 示意性源代码 四、 一个实际应用Visitor模式的例子 五、 在什么情况下应当使用访问者模式 六、 使用访问者模式的优点和缺点 设计模式(21)-Template Method Pattern 一、 模板方法(Template Method)模式 二、 模版方法模式的结构 三、 模板方法模式的示意性代码 四、 继承作为复用的工具 五、 一个实际应用模板方法的例子 六、 模版方法模式中的方法 七、 重构的原则 设计模式(22)-Strategy Pattern 一、 策略(Strategy)模式 二、 策略模式的结构 三、 示意性源代码 四、 何时使用何种具体策略角色 五、 一个实际应用策略模式的例子 六、 在什么情况下应当使用策略模式 七、 策略模式的优点和缺点 八、 其它

2012-08-05

C#设计模式(李建忠)

最实用的C#设计模式教程,MSDN网络讲堂上C#面向对象设计模式纵横谈对应的文字版教程

2012-08-05

Delphi模式编程第二分卷

一共两个压缩分卷,这是第二个分卷 第一部分 模式编程原理 第1章 模式概述 1.1 模式的概念 1.1.1 什么是模式 1.1.2 模式可以做什么 1.2 模式与架构 1.2.1 什么是架构 1.2.2 架构和模式的关系 1.3 从面向对象编程到模式编程 1.3.1 关于封装的哲学 1.3.2 利用继承实现变化的封装和简单的复用 1.3.3 借助模式封装多个变化 1.3.4 模式帮助我们解决问题 第2章 Delphi的模式编程机制 2.1 对象模型机制 2.1.1 对象模型 2.1.2 对象建模和模式编程 2.1.3 对象关系与复用 2.2 动态绑定机制 2.2.1 方法绑定 2.2.2 虚方法 2.2.3 多态 2.3 类型转换机制 2.3.1 类型 2.3.2 向上转型 2.3.3 向下转型 2.4 接口抽象机制 2.4.1 接口的概念 2.4.2 抽象类 2.4.3 对象接口 2.4.4 抽象类与对象接口的比较 2.4.5 针对接口而不是针对实现编程 第3章 模式编程法则 3.1 开闭法则(OCP) 3.2 Liskov代换法则(LSP) 3.3 依赖反转法则(DIP) 3.4 接口隔离法则(ISP) 3.5 单一职责法则(SRP) 第二部分 创建型模式编程 第4章 工厂方法模式(Factory Method) 4.1 模式解说 4.2 结构和用法 4.2.1 模式结构 4.2.2 代码模板 4.2.3 问题讨论 4.3 范例与实践 4.3.1 利用工厂方法模式设计可动态切换持久层机制的应用 4.3.2 范例小结 第5章 抽象工厂模式(Abstract Factory) 5.1 模式解说 5.2 结构和用法 5.2.1 模式结构 5.2.2 代码模板 5.3 范例与实践 5.3.1 用抽象工厂模式动态构造界面风格 5.3.2 WebSnap的Web Module架构与抽象工厂模式 5.3.3 范例小结 第6章 建造者模式(Builder) 6.1 模式解说 6.2 结构和用法 6.2.1 模式结构 6.2.2 代码模板 6.3 范例与实践 6.3.1 一个数据集对象产品的建造者模式 6.3.2 范例小结 第7章 单例模式(Singleton) 7.1 模式解说 7.2 结构和用法 7.2.1 模式结构 7.2.2 代码模板 7.2.3 Delphi对象构造机制与单例模式 7.3 范例与实践 7.3.1 一个共享数据库连接的单例模式范例 7.3.2 范例小结 第8章 原型模式(Prototype) 8.1 模式解说 8.2 结构和用法 8.2.1 模式结构 8.2.2 代码模板 8.3 范例与实践 8.3.1 Delphi对象的克隆 8.3.2 用原型模式克隆字体 8.3.3 Delphi对象流化与原型模式 8.3.4 范例小结 第9章 适配器模式(Adapter) 9.1 模式解说 9.2 结构和用法 9.2.1 类的适配器模式 9.2.2 对象的适配器模式 9.2.3 问题讨论 9.3 范例与实践 9.3.1 用适配器模式包装第三方API的范例 9.3.2 范例小结 第10章 桥接模式(Bridge) 10.1 模式解说 10.2 结构和用法 10.2.1 模式结构 10.2.2 代码模板 10.3 范例与实践 10.3.1 使用桥接模式改进数据持久层的健壮性 10.3.2 基于桥接模式的一个数据视图程序 10.3.3 范例小结 第11章 合成模式(Composite) 2 11.1 模式解说 11.2 结构和用法 11.2.1 模式结构 11.2.2 代码模板 11.2.3 问题讨论 11.3 范例与实践 11.3.1 合成模式在组织机构管理系统中的应用 11.3.2 范例小结 第12章 装饰者模式(Decorator) 12.1 模式解说 12.2 结构和用法 12.2.1 模式结构 12.2.2 代码模板 12.2.3 问题讨论 12.3 范例与实践 12.3.1 装饰者模式在图片观赏器中的应用 12.3.2 范例小结 第13章 门面模式(Facade) 13.1 模式解说 13.2 结构和用法 13.2.1 模式结构 13.2.2 代码模板 13.2.3 问题讨论 13.3 范例与实践 13.3.1 门面模式和分布式系统的设计优化 13.3.2 用门面模式设计的COM+银行转账系统 13.3.3 COM+银行转账系统实现代码剖析 13.3.4 范例小结 第14章 享元模式(Flyweight) 14.1 模式解说 14.2 结构和用法 14.2.1 模式结构 14.2.2 代码模板 14.2.3 问题讨论 14.3 范例与实践 14.3.1 对象池技术和享元模式 14.3.2 享元模式在任务调度系统中的应用 14.3.3 范例小结 第15章 代理模式(Proxy) 15.1 模式解说 15.2 结构和用法 15.2.1 模式结构 15.2.2 代码模板 15.3 范例与实践 15.3.1 代理模式在数据库程序中的应用 15.3.2 范例小结 第四部分 行为型模式编程 第16章 责任链模式(Chain of Responsibility) 16.1 模式解说 16.2 结构和用法 16.2.1 模式结构 16.2.2 代码模板 16.2.3 问题讨论 16.3 范例与实践 16.3.1 责任链模式在项目审批系统中的应用 16.3.2 责任链模式对代码的重构 16.3.3 范例小结 第17章 命令模式(Command) 17.1 模式解说 17.2 结构和用法 17.2.1 模式结构 17.2.2 代码模板 17.2.3 问题讨论 17.3 范例与实践 17.3.1 Delphi的Action编程机制与命令模式 17.3.2 一个兼有撤销重做功能的文本编辑器范例 17.3.3 范例小结 第18章 解释器模式(Interpreter) 18.1 模式解说 18.2 结构与用法 18.2.1 模式结构 18.2.2 代码模板 18.3 范例与实践 18.3.1 一个罗马数字到阿拉伯数字的转换器程序 18.3.2 范例小结 第19章 迭代子模式(Iterator) 19.1 模式解说 19.2 结构与用法 19.2.1 模式结构 19.2.2 代码模板 19.2.3 问题讨论 19.3 范例与实践 19.3.1 一个基于迭代子模式的图片播放器 19.3.2 范例小结 第20章 中介者模式(Mediator) 20.1 模式解说 20.2 结构与用法 20.2.1 模式结构 20.2.2 代码模板 20.2.3 问题讨论 20.3 范例与实践 20.3.1 中介者模式在聊天室系统中的应用 20.3.2 范例小结 第21章 备忘录模式(Memento) 21.1 模式解说 21.2 结构与用法 21.2.1 模式结构 21.2.2 代码模板 21.2.3 问题讨论 21.3 范例与实践 21.3.1 备忘录模式在地理信息系统中的应用 21.3.2 范例小结 第22章 观察者模式(Observer) 22.1 模式解说 22.2 结构与用法 22.2.1 模式结构 22.2.2 代码模板 22.2.3 问题讨论 22.3 范例与实践 22.3.1 观察者模式在界面色彩主题中的应用 22.3.2 范例小结 第23章 状态模式(State) 23.1 模式解说 23.2 结构与用法 23.2.1 模式结构 23.2.2 代码模板 23.2.3 问题讨论 23.3 范例与实践 23.3.1 状态模式在信用卡账户管理系统中的应用 23.3.2 范例小结 第24章 策略模式(Strategy) 24.1 模式解说 24.2 结构与用法 24.2.1 模式结构 24.2.2 代码模板 24.2.3 问题讨论 24.3 范例与实践 24.3.1 策略模式在酒店管理系统中的应用 24.3.2 范例小结 第25章 模板方法模式(Template Method) 25.1 模式解说 25.2 结构与用法 25.2.1 模式结构 25.2.2 代码模板 25.2.3 问题讨论 25.3 范例与实践 25.3.1 模板方法在离线数据库系统中的应用 25.3.2 范例小结 第26章 访问者模式(Visitor) 26.1 模式解说 26.2 结构与用法 26.2.1 模式结构 26.2.2 代码模板 26.2.3 问题讨论 26.3 范例与实践 26.3.1 访问者模式在薪酬福利管理中的应用 26.3.2 范例小结 主要参考文献

2012-07-19

Delphi模式编程第一分卷

一共两个压缩分卷,这是第一个分卷 第一部分 模式编程原理 第1章 模式概述 1.1 模式的概念 1.1.1 什么是模式 1.1.2 模式可以做什么 1.2 模式与架构 1.2.1 什么是架构 1.2.2 架构和模式的关系 1.3 从面向对象编程到模式编程 1.3.1 关于封装的哲学 1.3.2 利用继承实现变化的封装和简单的复用 1.3.3 借助模式封装多个变化 1.3.4 模式帮助我们解决问题 第2章 Delphi的模式编程机制 2.1 对象模型机制 2.1.1 对象模型 2.1.2 对象建模和模式编程 2.1.3 对象关系与复用 2.2 动态绑定机制 2.2.1 方法绑定 2.2.2 虚方法 2.2.3 多态 2.3 类型转换机制 2.3.1 类型 2.3.2 向上转型 2.3.3 向下转型 2.4 接口抽象机制 2.4.1 接口的概念 2.4.2 抽象类 2.4.3 对象接口 2.4.4 抽象类与对象接口的比较 2.4.5 针对接口而不是针对实现编程 第3章 模式编程法则 3.1 开闭法则(OCP) 3.2 Liskov代换法则(LSP) 3.3 依赖反转法则(DIP) 3.4 接口隔离法则(ISP) 3.5 单一职责法则(SRP) 第二部分 创建型模式编程 第4章 工厂方法模式(Factory Method) 4.1 模式解说 4.2 结构和用法 4.2.1 模式结构 4.2.2 代码模板 4.2.3 问题讨论 4.3 范例与实践 4.3.1 利用工厂方法模式设计可动态切换持久层机制的应用 4.3.2 范例小结 第5章 抽象工厂模式(Abstract Factory) 5.1 模式解说 5.2 结构和用法 5.2.1 模式结构 5.2.2 代码模板 5.3 范例与实践 5.3.1 用抽象工厂模式动态构造界面风格 5.3.2 WebSnap的Web Module架构与抽象工厂模式 5.3.3 范例小结 第6章 建造者模式(Builder) 6.1 模式解说 6.2 结构和用法 6.2.1 模式结构 6.2.2 代码模板 6.3 范例与实践 6.3.1 一个数据集对象产品的建造者模式 6.3.2 范例小结 第7章 单例模式(Singleton) 7.1 模式解说 7.2 结构和用法 7.2.1 模式结构 7.2.2 代码模板 7.2.3 Delphi对象构造机制与单例模式 7.3 范例与实践 7.3.1 一个共享数据库连接的单例模式范例 7.3.2 范例小结 第8章 原型模式(Prototype) 8.1 模式解说 8.2 结构和用法 8.2.1 模式结构 8.2.2 代码模板 8.3 范例与实践 8.3.1 Delphi对象的克隆 8.3.2 用原型模式克隆字体 8.3.3 Delphi对象流化与原型模式 8.3.4 范例小结 第9章 适配器模式(Adapter) 9.1 模式解说 9.2 结构和用法 9.2.1 类的适配器模式 9.2.2 对象的适配器模式 9.2.3 问题讨论 9.3 范例与实践 9.3.1 用适配器模式包装第三方API的范例 9.3.2 范例小结 第10章 桥接模式(Bridge) 10.1 模式解说 10.2 结构和用法 10.2.1 模式结构 10.2.2 代码模板 10.3 范例与实践 10.3.1 使用桥接模式改进数据持久层的健壮性 10.3.2 基于桥接模式的一个数据视图程序 10.3.3 范例小结 第11章 合成模式(Composite) 2 11.1 模式解说 11.2 结构和用法 11.2.1 模式结构 11.2.2 代码模板 11.2.3 问题讨论 11.3 范例与实践 11.3.1 合成模式在组织机构管理系统中的应用 11.3.2 范例小结 第12章 装饰者模式(Decorator) 12.1 模式解说 12.2 结构和用法 12.2.1 模式结构 12.2.2 代码模板 12.2.3 问题讨论 12.3 范例与实践 12.3.1 装饰者模式在图片观赏器中的应用 12.3.2 范例小结 第13章 门面模式(Facade) 13.1 模式解说 13.2 结构和用法 13.2.1 模式结构 13.2.2 代码模板 13.2.3 问题讨论 13.3 范例与实践 13.3.1 门面模式和分布式系统的设计优化 13.3.2 用门面模式设计的COM+银行转账系统 13.3.3 COM+银行转账系统实现代码剖析 13.3.4 范例小结 第14章 享元模式(Flyweight) 14.1 模式解说 14.2 结构和用法 14.2.1 模式结构 14.2.2 代码模板 14.2.3 问题讨论 14.3 范例与实践 14.3.1 对象池技术和享元模式 14.3.2 享元模式在任务调度系统中的应用 14.3.3 范例小结 第15章 代理模式(Proxy) 15.1 模式解说 15.2 结构和用法 15.2.1 模式结构 15.2.2 代码模板 15.3 范例与实践 15.3.1 代理模式在数据库程序中的应用 15.3.2 范例小结 第四部分 行为型模式编程 第16章 责任链模式(Chain of Responsibility) 16.1 模式解说 16.2 结构和用法 16.2.1 模式结构 16.2.2 代码模板 16.2.3 问题讨论 16.3 范例与实践 16.3.1 责任链模式在项目审批系统中的应用 16.3.2 责任链模式对代码的重构 16.3.3 范例小结 第17章 命令模式(Command) 17.1 模式解说 17.2 结构和用法 17.2.1 模式结构 17.2.2 代码模板 17.2.3 问题讨论 17.3 范例与实践 17.3.1 Delphi的Action编程机制与命令模式 17.3.2 一个兼有撤销重做功能的文本编辑器范例 17.3.3 范例小结 第18章 解释器模式(Interpreter) 18.1 模式解说 18.2 结构与用法 18.2.1 模式结构 18.2.2 代码模板 18.3 范例与实践 18.3.1 一个罗马数字到阿拉伯数字的转换器程序 18.3.2 范例小结 第19章 迭代子模式(Iterator) 19.1 模式解说 19.2 结构与用法 19.2.1 模式结构 19.2.2 代码模板 19.2.3 问题讨论 19.3 范例与实践 19.3.1 一个基于迭代子模式的图片播放器 19.3.2 范例小结 第20章 中介者模式(Mediator) 20.1 模式解说 20.2 结构与用法 20.2.1 模式结构 20.2.2 代码模板 20.2.3 问题讨论 20.3 范例与实践 20.3.1 中介者模式在聊天室系统中的应用 20.3.2 范例小结 第21章 备忘录模式(Memento) 21.1 模式解说 21.2 结构与用法 21.2.1 模式结构 21.2.2 代码模板 21.2.3 问题讨论 21.3 范例与实践 21.3.1 备忘录模式在地理信息系统中的应用 21.3.2 范例小结 第22章 观察者模式(Observer) 22.1 模式解说 22.2 结构与用法 22.2.1 模式结构 22.2.2 代码模板 22.2.3 问题讨论 22.3 范例与实践 22.3.1 观察者模式在界面色彩主题中的应用 22.3.2 范例小结 第23章 状态模式(State) 23.1 模式解说 23.2 结构与用法 23.2.1 模式结构 23.2.2 代码模板 23.2.3 问题讨论 23.3 范例与实践 23.3.1 状态模式在信用卡账户管理系统中的应用 23.3.2 范例小结 第24章 策略模式(Strategy) 24.1 模式解说 24.2 结构与用法 24.2.1 模式结构 24.2.2 代码模板 24.2.3 问题讨论 24.3 范例与实践 24.3.1 策略模式在酒店管理系统中的应用 24.3.2 范例小结 第25章 模板方法模式(Template Method) 25.1 模式解说 25.2 结构与用法 25.2.1 模式结构 25.2.2 代码模板 25.2.3 问题讨论 25.3 范例与实践 25.3.1 模板方法在离线数据库系统中的应用 25.3.2 范例小结 第26章 访问者模式(Visitor) 26.1 模式解说 26.2 结构与用法 26.2.1 模式结构 26.2.2 代码模板 26.2.3 问题讨论 26.3 范例与实践 26.3.1 访问者模式在薪酬福利管理中的应用 26.3.2 范例小结 主要参考文献

2012-07-18

嵌入式Linux应用程序开发标准教程

嵌入式Linux应用程序开发标准教程 PDF格式

2012-02-04

Linux设备驱动详解

Linux设备驱动详解 PDF格式

2012-02-04

高质量C++/C编程指南

高质量C++/C编程指南 林锐 博士著

2011-09-11

ASP.NET项目开发案例全程实录之供求信息网

在全球知识经济和信息化高速发展的今天,信息化是决定企业成败的关键因素,也是企业实现跨地区、跨行业、跨所有制,特别是跨国经营的重要前提。而电子商务作为一种崭新的商务运作模式,越来越受到企业的重视。本章通过开发一个流行的电子商务网站——供求信息网,介绍如何利用ASP.NET 3.5+SQL Server 2005快速开发一个电子商务平台。 通过阅读本章,可以学习到:  供求信息网站开发的基本过程  如何进行需求分析和编写项目计划书  系统设计的方法  如何分析并设计数据库  如何设计公共类  主要功能模块的实现方法  网站编译与发布  SQL Server 2005技术  面向对象的开发思想  分层开发模式

2011-09-03

Linux设备驱动开发详解

Linux设备驱动开发详解 PDF格式

2011-07-27

嵌入式Linux应用程序开发

嵌入式Linux应用程序开发 PDF格式

2011-07-27

VMware使用手册

VMware使用手册 PDF格式

2011-05-30

C#项目开发案例全程实录源代码

1、家庭视频监控系统 2、企业短信群发系统 3、人事工资管理系统 4、企业电话客服系统 5、卡拉OK点歌系统 6、企业QQ系统 7、餐饮管理系统 8、企业人事管理系统 9、超市进销存销售管理系统 10、编程词典销售分析系统 11、在线考试系统 12、图书馆管理系统

2011-05-30

ASP.NET应用与开发案例教程

上篇ASP.NET应用与开发基础 第1章ASP.NET概论 1.1ASP.NET简介 1.1.1从.NET谈起 1.1.2动态网站设计技术 1.1.3ASP.NET的介绍 1.1.4ASP.NET和ASP的对比 1.2运行环境配置 1.2.1ASP.NET运行环境介绍 1.2.21lS的安装和配置 1.2.3安装Microsoft.NETFrameworkSDK 1.2.4VisualStudio.NET的简介 1.3从HelloWorld开始 1.3.1用HTML编写的HelloWorld程序 1.3.2用C#编写的HelloWorld程序 1.4小结 1.5习题 第2章ASP.NET语言基础 2.1C#语言简介 2.2一个简单的程序 2.3C#中的数据类型 2.3.1整型 2.3.2浮点型 2.3.3布尔型 2.3.4字符型 2.3.5预定义引用类型 2.4C#中的变量和常量 2.4.1变量声明和赋值 2.4.2定义常量 2.4.3枚举类型 2.5C#中的操作符与表达式 2.5.1赋值运算符 2.5.2算术运算符 2.5.3比较运算符 2.5.4布尔逻辑运算符 2.5.5位运算符 2.6C#中的控制语句 2.6.1选择语句 2.6.2循环语句 2.7C#中的类机制简介 2.8小结 2.9习题 第3章WebForm 3.1WebForm概述 3.1.1什么是WebForm 3.1.2WebForm的组成 3.1.3第一个WebForm程序 3.1.4让WebForm支持中文 3.2WebForm语法知识 3.2.1aspx文件的构成 3.2.2服务器控件(ServerControls) 3.2.3WebForm的Code-Behind代码组织方式 3.3WebForm页面处理 3.3.1页面处理内部过程 3.3.2页面的一次往返处理 3.3.3页面重建 3.4声明和使用服务器控件 3.4.1声明服务器控件 3.4.2响应服务器控件 3.5小结 3.6习题 第4章服务器控件 4.1常用的HTML控件 4.1.1表单控件 4.1.2表格控件 4.1.3其他控件 4.2Web控件 4.2.1Label控件 4.2.2Button控件 4.2.3CheckBox和CheckBoxList控件 4.2.4RadioButton和RadioButtonList控件 4.2.51mage控件和ImageButton控件 4.2.6HyperLink和LinkButton控件 4.2.7DropDownList和ListBox控件 4.2.8Panel控件 4.2.9TextBox控件 4.2.10Table控件、TableRow控件及TableCell控件 4.2.11高级控件 4.3验证控件 4.3.1验证控件概述 4.3.2验证控件的类型 4.3.3验证技术的综合应用 4.4用户控件 4.4.1用户控件概述 4.4.2用户控件中定义属性 4.4.3用户控件中的事件处理 4.4.4从WebForm页面到用户控件 4.5小结 4.6习题 中篇ASP.NET应用与开发的核心内容 第5章AD0.NET数据库连接 5.1ADO.NET基本概念 5.1.1ADO.NET对象模型 5.1.2ADO.NET对比ADO 5.2ADO.NET数据库连接概述 5.3使用Connection对象 5.4使用Command和DataReader对象 5.4.1Command对象 5.4.2DataReader对象 5.4.3使用Command对象实现存储过程访问 5.5使用DataSet对象 5.5.1DataTableCollection对象 5.5.2DataRelationCollection对象 5.5.3ExtendedProperties对象 5.5.4使用DataSet对象获取数据 5.5.5使用DataSet 5.5.6使用DataTable 5.6使用DataAdapter对象 5.7小结 5.8习题 第6章AD0.NET数据管理与数据控件 6.1SQL操作 6.1.1数据查询 6.1.2数据更新 6.2数据绑定技术 6.3DataGrid控件 6.3.1在DataGrid中显示数据 6.3.2为DataGrid添加多功能列 6.4Repeater控件 6.5DataList控件 6.6小结 6.7习题 第7章跟踪调试ASP.NET程序 7.1错误的种类 7.2跟踪ASP.NET程序 7.2.1页面级的跟踪 7.2.2应用程序级的跟踪 7.3调试ASP.NET程序 7.3.1调试ASP.NET程序 7.3.2设置断点 7.4小结 7.5习题 第8章ASP.NET应用程序 8.1什么是应用程序 8.2ASP.NET配置文件概述 8.2.1什么是配置文件 8.2.2ASP.NET程序配置文件格式 8.2.3配置文件的内容格式 8.3ASP.NET应用程序中的用户状态管理 8.3.1Global.asax文件概述 8.3.2Application对象事件 8.3.3Session对象事件 8.3.4其他几种客户端的用户状态管理方法 8.3.5本小节提示 8.4ASP.NETHTFP运行情况 8.4.1HTYP运行‘晴况介绍 8.4.2HTFP处理程序 8.5小结 8.6习题 第9章ASP.NET与XML 9.1XML简介 9.1.1什么是标记语言 9.1.2HTML的弊病 9.1.3什么是XML 9.2XML基本语法 9.2.1语法的基本要求和概念 9.2.2文件 9.2.3XML文件的逻辑结构 9.2.4XML文件的物理结构 9.3操作XML 9.3.1XML控件 9.3.2XmlTextReader. 9.3.3XmlTextWriter 9.3.4XMLDOM 9.3.5XmlDataDocument 9.3.6DataSet 9.4小结 9.5习题 第10章WebSeMce 10.1WebService简介 10.2一个简单的WebService程序 10.3WebService支持的数据类型 10.4建立WebService 10.5使用WebService 10.6使用Session和Application对象 10.7小结 10.8习题 下篇ASP.NET在实际中的应用与开发 第11章留言板的实现 11.1系统功能及结构描述 11.2数据库的实现 11.3各功能模块的具体实现 11.4小结 11.5习题 第12章网上书店开发实例 12.1网上书店的系统设计 12.2网上书店的数据库设计 12.3网上书店的实现 12.3.1实现用户登录 12.3.2实现用户注册 12.3.3实现分类浏览 12.3.4实现按名搜索 12.3.5查看图书介绍 12.3.6购物车及购买 12.3.7客户订单管理 12.3.8新书入库 12.3.9封面上载 12.3.10库存管理 12.4小结

2011-04-27

ASP.NET典型系统开发详解第二部分

第一章二手交易系统平台 1.1系统总体设计 1.1.1系统组成描述 1.1.2系统结构描述 1.1.3系统主要关系设计 1.1.4P间数据处理层 1.2数据库设计 1.3系统前台设计 1.3.1主要用户自定义控件 1.3.2首页总体设计 1.3.3注册页设计 1.3.4商品信息详细页设计 1.3.5普通商品信息添加页 1.3.6个人发布信息管理 1.3.7数据搜索结果页 1.4系统后台管理设计 1.4.1后台登录设计 1.4.2后台普通商品信息管理 1.4.3后台租用房屋信息管理 1.4.4后台信息分类管理 1.4.5注册用户信息管理 第二章电子购书网站 2.1系统总体设计 2.1.1系统组成描述 2.1.2系统结构描述 2.1.3系统主要模块关系 2.1.4业务逻辑层 2.2系统数据库设计 2.3系统界面层设计 2.3.1首页设计 2.3.2注册登录 2.3.3书籍详细信息页设计 2.3.4购物篮设计 2.3.5购物清单 2.3.6订购状态页 2.3.7缺书籍反馈页 2.3.8用户管理页 2.3.9书籍管理 2.3.10购物订单管理 2.4系统服务Web Service层设计 2.5 B2C网络支付 第三章PoRTAI.企业级门户网站 3.1系统总体设计 3.1.1系统架构描述 3.1-2系统功能模块描述 3.1.3数据库设计 3.1.4门户网站}I擎动作原理 3.1.5配置信息XM[。文件结构分析 3.1.6 XMI。配置文件操作类 3.1.7系统的层次结构 3.2门户网站引擎设计 3.2.1模块排版系统设计 3.2.2模块排版系统代码分析 3.3角色身份认证 3.3.1角色模块控件 3.4外挂自定义系统 3.5门户站点可重用模块 3.6移动模块设计 第四章BBS论坛系统 4.1系统总体设计 4.1.1系统功能 4.1. 2系统框架 4.1. 3系统附加支持模块(IJtility)概述 4.1.4系统模型对应模块(Model)概述 4.1.5业务逻辑模块(Businessl.,ogic)概述 4.1.6数据库访问层模块(SQL,ServerDAI。)概述 4.1.7系统界面模块(Stella)概述 4.2系统数据库设计 4.2.1数据库设计 4.2.2数据库表结构 4.2.3数据库存储过程设计 4.3系统典型控件和界面设计 4.3.1讨论区域版块信息控件 4.3.2论坛版块控件 4.3.3发表帖子控件设计New。Topic.aSCX- 4.3.4论坛首页index.asp设计 4.3.5分论坛theme.aspx设计 4.3.6发新帖界面new’Fopie.aspx设计 4.3.7论坛注册 4.3.8论坛后台 4.3.9论坛配置信息管理config.aspx设计 4.3.10论坛区域版块管理页district.aspx设计 4.3.11小结 第五章大型汽车新闻网站 5.1系统总体设计 5.1.1系统组成描述 5.1.2系统结构描述 5.1.3发布系统主要模块设计 5.1.4系统通用层Common设计 5.1.5系统逻辑层。Model设计 5.1.6系统数据访问层DataAccess设计 5.1.7系统界面层Web设计 5.2系统数据库设计 5.3后台发布系统设计 5.3.1稿件模板设计和管理 5.3.2发布新闻信息编辑并生成静态页 5.3.3批量静态页生成 5.3.4信息分类管理 5.3.5车型信息管理 5.3.6广告管理 5.3.7网站各栏日信息列表页创建 5.3.8网站首页创建 5.4网站前台设计 第六章oA办公自动化公文流转设计 6.1系统总体设计 6.1.1公文流转组成描述 6.1.2公文流转结构描述 6.2系统数据库设计 6.3具体功能设计 6.3.1创建公文流转 6.3.2流转流程列表 6.3.3流转流程图预览 6.3.4公文新发 6.3.5公文审核 6.3.6公文流转监控

2011-04-27

ASP.NET典型系统开发详解(第一部分)

第一章二手交易系统平台 1.1系统总体设计 1.1.1系统组成描述 1.1.2系统结构描述 1.1.3系统主要关系设计 1.1.4P间数据处理层 1.2数据库设计 1.3系统前台设计 1.3.1主要用户自定义控件 1.3.2首页总体设计 1.3.3注册页设计 1.3.4商品信息详细页设计 1.3.5普通商品信息添加页 1.3.6个人发布信息管理 1.3.7数据搜索结果页 1.4系统后台管理设计 1.4.1后台登录设计 1.4.2后台普通商品信息管理 1.4.3后台租用房屋信息管理 1.4.4后台信息分类管理 1.4.5注册用户信息管理 第二章电子购书网站 2.1系统总体设计 2.1.1系统组成描述 2.1.2系统结构描述 2.1.3系统主要模块关系 2.1.4业务逻辑层 2.2系统数据库设计 2.3系统界面层设计 2.3.1首页设计 2.3.2注册登录 2.3.3书籍详细信息页设计 2.3.4购物篮设计 2.3.5购物清单 2.3.6订购状态页 2.3.7缺书籍反馈页 2.3.8用户管理页 2.3.9书籍管理 2.3.10购物订单管理 2.4系统服务Web Service层设计 2.5 B2C网络支付 第三章PoRTAI.企业级门户网站 3.1系统总体设计 3.1.1系统架构描述 3.1-2系统功能模块描述 3.1.3数据库设计 3.1.4门户网站}I擎动作原理 3.1.5配置信息XM[。文件结构分析 3.1.6 XMI。配置文件操作类 3.1.7系统的层次结构 3.2门户网站引擎设计 3.2.1模块排版系统设计 3.2.2模块排版系统代码分析 3.3角色身份认证 3.3.1角色模块控件 3.4外挂自定义系统 3.5门户站点可重用模块 3.6移动模块设计 第四章BBS论坛系统 4.1系统总体设计 4.1.1系统功能 4.1. 2系统框架 4.1. 3系统附加支持模块(IJtility)概述 4.1.4系统模型对应模块(Model)概述 4.1.5业务逻辑模块(Businessl.,ogic)概述 4.1.6数据库访问层模块(SQL,ServerDAI。)概述 4.1.7系统界面模块(Stella)概述 4.2系统数据库设计 4.2.1数据库设计 4.2.2数据库表结构 4.2.3数据库存储过程设计 4.3系统典型控件和界面设计 4.3.1讨论区域版块信息控件 4.3.2论坛版块控件 4.3.3发表帖子控件设计New。Topic.aSCX- 4.3.4论坛首页index.asp设计 4.3.5分论坛theme.aspx设计 4.3.6发新帖界面new’Fopie.aspx设计 4.3.7论坛注册 4.3.8论坛后台 4.3.9论坛配置信息管理config.aspx设计 4.3.10论坛区域版块管理页district.aspx设计 4.3.11小结 第五章大型汽车新闻网站 5.1系统总体设计 5.1.1系统组成描述 5.1.2系统结构描述 5.1.3发布系统主要模块设计 5.1.4系统通用层Common设计 5.1.5系统逻辑层。Model设计 5.1.6系统数据访问层DataAccess设计 5.1.7系统界面层Web设计 5.2系统数据库设计 5.3后台发布系统设计 5.3.1稿件模板设计和管理 5.3.2发布新闻信息编辑并生成静态页 5.3.3批量静态页生成 5.3.4信息分类管理 5.3.5车型信息管理 5.3.6广告管理 5.3.7网站各栏日信息列表页创建 5.3.8网站首页创建 5.4网站前台设计 第六章oA办公自动化公文流转设计 6.1系统总体设计 6.1.1公文流转组成描述 6.1.2公文流转结构描述 6.2系统数据库设计 6.3具体功能设计 6.3.1创建公文流转 6.3.2流转流程列表 6.3.3流转流程图预览 6.3.4公文新发 6.3.5公文审核 6.3.6公文流转监控

2011-04-27

RemObjects 6.0.49.861

RemObjects 6.0.49.861 Delphi 2010下安装成功

2011-04-01

DevExpress 5.4.exe

DevExpress 5.4.exe Delphi 2010下安装成功

2011-03-30

OverbyteIcs 7.rar

OverbyteIcs 7.rar Delphi 2010下安装成功

2011-03-30

深入浅出AVR单片机(增补版)

《深入浅出AVR单片机-从Mega48/88/168开始》的增补版,对原书中的内容进行了很多补充。

2011-03-11

CreateIOCompletionPort和完成端口

CreateIOCompletionPort和完成端口

2011-03-07

Visual C++ 6.0编程实例详解.part2

第1章 概述 1.1 MFC与C++ 1.2 VC++组件 1.3 安装 1.3.1 环境 1.3.2 安装过程 第2章 开发环境 2.1 主窗口 2.2 工具栏 2.2.1 Shaod工具栏 2.2.2 Build Mini-bar工具栏 2.3 菜单栏 2.3.1 File菜单 2.3.2 Edit菜单 2.3.3 View菜单 2.3.4 tasert菜单 2.3.5 Project菜单 2.3.6 Build菜单 2.3.7 Tools菜单 2.3.8 Window菜单 2. 3.9 Help菜单 2.4 工程工作区和主工作区 2.4.1 CtassView面板 2.4.2 FileView面板 2.4.3 ResourceView面板 2.4.4 主工作区 2.5 资源和资源编辑器 2.5.1 加速键编辑器 2.5.2 对话框编辑器 2.5.3 图形编辑器 2.5.4 菜单编辑器 2.5.5 字符串表编辑器 2.5.6 工具栏编辑器 2.6 版本信息编辑器 第 3章从 AppWisard开始 3.1 应用程序类型 3.2 创建简单的Windows应用程序 3.3 AppWizard——生成结果 3.3.1 分类 3.3.2 传递和接收 3.3.3 处理 3.4 实例 第4章 对话框及控件 4.1 对话框 4.1.1 组成与分类 4.1.2 CDiaiog类 4.1.3 创建对话框 4.1.4 通用对话框类 4.2 控件 4.2.1 标准Windows控件 4.2.2 其他控件 4.3 创建基于对话框的应用程序 4.4 控件栏 4.4.1 工具栏 4.4.2 状态栏 4.4.3 对话框栏 4.5 属性单、属性页和向导 4.5.1 CPropertyPage类 4.5.2 CPropertySheet类 4.5.3 创建属性单 4.5.4 创建向导 4.6 实例 第5章 文档类和视类 5.1 文档类 5.2 文档模板类 5.3 视类 5.4 文档/视结构 5.5 菜单和加速键 5.5.1 菜单 5.5.2 添加消息处理函数 5.5.3 CMenu类 5.5.4 创建快捷菜单 5.5.5 添加加速键 5.6 实例 第6章 图形处理 6.1 设备环境 6.1.1 图形设备接口 6.1.2 设备环境映射模式 6.2 设备环境类 6.2.1 基类CDC类 6.2.2 用类CPaintDC绘图 6.2.3 用类CClientDC管理客户区 6.2.4 用类CWindowDC管理框架窗口 6.2.5 具有类CMetaFileDC的Windows元文件 6.3 GDI对象 6.3.1 类型 6.3.2 构造 6.3.3 选择 6.3.4 表示和使用颜色 6.4 画笔 6.4.1 分类 6.4.2 创建CPen类对象 6.4.3 选择堆画笔 6.4.4 绘画 6.4.5 实例 6.5 画刷 6.5.1 分类 6.5.2 创建CBrush对象 6.5.3 使用逻辑画刷 6.5.4 实例 6.6 字

2010-09-25

Visual C++ 6.0编程实例详解.part1

第1章 概述 1.1 MFC与C++ 1.2 VC++组件 1.3 安装 1.3.1 环境 1.3.2 安装过程 第2章 开发环境 2.1 主窗口 2.2 工具栏 2.2.1 Shaod工具栏 2.2.2 Build Mini-bar工具栏 2.3 菜单栏 2.3.1 File菜单 2.3.2 Edit菜单 2.3.3 View菜单 2.3.4 tasert菜单 2.3.5 Project菜单 2.3.6 Build菜单 2.3.7 Tools菜单 2.3.8 Window菜单 2. 3.9 Help菜单 2.4 工程工作区和主工作区 2.4.1 CtassView面板 2.4.2 FileView面板 2.4.3 ResourceView面板 2.4.4 主工作区 2.5 资源和资源编辑器 2.5.1 加速键编辑器 2.5.2 对话框编辑器 2.5.3 图形编辑器 2.5.4 菜单编辑器 2.5.5 字符串表编辑器 2.5.6 工具栏编辑器 2.6 版本信息编辑器 第 3章从 AppWisard开始 3.1 应用程序类型 3.2 创建简单的Windows应用程序 3.3 AppWizard——生成结果 3.3.1 分类 3.3.2 传递和接收 3.3.3 处理 3.4 实例 第4章 对话框及控件 4.1 对话框 4.1.1 组成与分类 4.1.2 CDiaiog类 4.1.3 创建对话框 4.1.4 通用对话框类 4.2 控件 4.2.1 标准Windows控件 4.2.2 其他控件 4.3 创建基于对话框的应用程序 4.4 控件栏 4.4.1 工具栏 4.4.2 状态栏 4.4.3 对话框栏 4.5 属性单、属性页和向导 4.5.1 CPropertyPage类 4.5.2 CPropertySheet类 4.5.3 创建属性单 4.5.4 创建向导 4.6 实例 第5章 文档类和视类 5.1 文档类 5.2 文档模板类 5.3 视类 5.4 文档/视结构 5.5 菜单和加速键 5.5.1 菜单 5.5.2 添加消息处理函数 5.5.3 CMenu类 5.5.4 创建快捷菜单 5.5.5 添加加速键 5.6 实例 第6章 图形处理 6.1 设备环境 6.1.1 图形设备接口 6.1.2 设备环境映射模式 6.2 设备环境类 6.2.1 基类CDC类 6.2.2 用类CPaintDC绘图 6.2.3 用类CClientDC管理客户区 6.2.4 用类CWindowDC管理框架窗口 6.2.5 具有类CMetaFileDC的Windows元文件 6.3 GDI对象 6.3.1 类型 6.3.2 构造 6.3.3 选择 6.3.4 表示和使用颜色 6.4 画笔 6.4.1 分类 6.4.2 创建CPen类对象 6.4.3 选择堆画笔 6.4.4 绘画 6.4.5 实例 6.5 画刷 6.5.1 分类 6.5.2 创建CBrush对象 6.5.3 使用逻辑画刷 6.5.4 实例 6.6 字

2010-09-25

Visual C++课程设计案例精编

Visual C++课程设计案例精编 PDF格式

2010-09-21

Visual C++案例教程

Visual C++案例教程 PDF格式

2010-09-21

Visual C++ 6.0信息管理系统开发实例导航

Visual C++ 6.0信息管理系统开发实例导航

2010-09-21

C++语言程序设计习题与实验指导

第一部分:习题解答 第一章:概述 第二章:C++简单程序设计 第三章:函数 第四章:类与对象 第五章:C++程序的结构 第六章:数组、指针与字符串 第七章:继承与派生 第八章:多态性 第九章:群体类 第十章:群体数据的组织 第十一章:流类库与输入/输出 第十二章:异常处理 第十三章:MFC库与Windows程序开发概述 第二部分:实验指导 实验1:Visual C++ 6.0开发环境应用入门(2学时) 实验2:C++简单程序设计(4学时) 实验3:函数的应用(2学时) 实验4:类与对象(4学时) 实验5:C++程序的结构(2学时) .实验6:数组、指针与字符串(4学时) 实验7:继承与派生(4学时) 实验8:多态性(2学时) 实验9:群体类(4学时) 实验10:群体数据的组织(2学时) 实验11:流类库与输入/输出(2学时) 实验12:异常处理(2学时) 实验13:Windows应用程序框架(2学时) 附录A:Viusal C++开发环境简介 附录B:ASCII码表 附录C:常用系统函数

2010-09-21

Flash精彩实例.rar

Flash精彩实例 RAR格式

2010-07-20

Oracle性能优化技术内幕.rar

Oracle性能优化技术内幕 RAR格式

2010-07-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除