书籍详情
面向对象开发实践之路:C#版
作者:李维著
出版社:电子工业出版社
出版时间:2005-08-01
ISBN:9787121016431
定价:¥49.00
购买这本书可以去
内容简介
《面向对象开发实践之路》有C#和Delphi两个版本,本书为C#版,主要介绍了利用主流开发方法学和技术技巧进行面向对象开发的原则与实践,通过完整剖析一个实际应用程序的设计、开发与实现,深入浅出地阐述OOD(面向对象开发)、OOP(面向对象程序设计)、TDD(测试驱动开发)、UT(单元测试)等开发方法学与最佳实践的应用与技术技巧,全面展现深厚技术实践经验的精髓。本书适合于习惯使用RAD方式而想学习如何使用OOA/OOD以及XP、TDD开发软件的C#、Delphi、VB以及PowerBuilder开发人员阅读。
作者简介
李维,Borland公司大中华区首席技术官(CTO),Borland/Inprise公司台湾首席工程师、资深技术顾问、著名的Delpthi专家。他具有相当丰富的一线开发经验,著述丰富,所创作的技术图书极具感染力。在书中他常常运用层层推进的演绎手法,引导读者主动思考,对技术趋势的分析和预测更是堪称一绝。国内读者对他的作品评价甚高,他所写的虽然是程序设计方面的书籍,读者却常常感党到他的作品阅读起来别有滋味,不但能学习到扎实的编程技术,还能在阅读的过程中使自己的思维能力得到锻炼和提升,同时品尝到阅读的另类乐趣。李维先生为人达观,幽默风趣,待人处事谦虚,内心永远充满自信。
目录
第0章 导读 (1)
第1章 一个简单的想法 (7)
1.1 找寻问题的本质 (13)
1.2 搜寻解决方法 (15)
1.2.1 面向对象开发方法 (15)
1.2.2 测试驱动开发(TDD-Test-Driven Development) (16)
1.2.3 结合面向对象分析/面向对象设计和XP/TDD (16)
1.3 结论 (17)
第2章 分析和设计架构的思考 (19)
2.1 从自然的场景开始构思 (19)
2.2 PFM系统的设计 (22)
2.2.1 需求捕获 (22)
2.2.2 使用需求分析 (24)
2.2.3 产品设计 (27)
2.3 类架构的思考 (34)
2.4 建立开发环境 (35)
2.4.1 建立版本控制项目 (36)
2.5 结论 (43)
第3章 TDD和NUnit框架 (45)
3.1 取得NUnit For .NET (45)
3.2 测试驱动开发模型 (46)
3.3 使用NUnit框架 (47)
3.3.1 范例场景 (48)
3.3.2 在C#项目中使用NUnit (49)
3.3.3 使用NUnit框架建立测试用例 (50)
3.3.4 NUnit框架提供测试服务的函数 (62)
3.3.5 使用测试包(Test Suite) (63)
3.3.6 测试种类(Test Category) (68)
3.4 结论 (74)
第4章 执行引擎和XML驱动设计 (77)
4.1 设计架构的思考 (78)
4.2 设定本章开发项目 (83)
4.3 封装配置信息类设计 (87)
4.3.1 TPFMConfig类的设计 (88)
4.3.2 TPFMConfigManager类的设计 (91)
4.3.3 TPFMSchedule类设计 (93)
4.3.4 TPFMScheduleManager类设计 (94)
4.4 从面向对象分析/设计转换到XP/TDD (96)
4.4.1 TPFMConfigManager类实现 (97)
4.4.2 TPFMScheduleManager类实现 (101)
4.4.3 建立测试用例测试设计和实现的类 (104)
4.5 观察到父类的迹象 (111)
4.5.1 设计TPFMManager (114)
4.5.2 使用TDD测试TPFMManager (119)
4.6 改善和重构TPFMManager类 (122)
4.7 使用Together 检查程序代码质量 (131)
4.8 类使用的设计模式 (140)
4.9 我们学到了什么 (142)
4.10 开发周期管理 (143)
4.11 另外一种开发配置 (146)
4.12 结论 (148)
第5章 多元,弹性架构的设计和实现——Handlers (151)
5.1 设计架构的思考 (152)
5.2 设定本章开发项目 (159)
5.3 处理器接口和处理器类的设计和实现 (160)
5.4 处理器类派生类设计和实现 (163)
5.4.1 文件处理器类- TPFMFileHandler (164)
5.4.2 压缩和反压缩处理器类-TPFMZipHandler (167)
5.4.3 加密和解密处理器类 (175)
5.4.4 目录处理器类 (181)
5.4.5 一切都很好,除了…… (184)
5.5 处理器工厂类设计和实现 (186)
5.5.1 处理器Factory类 (186)
5.5.2 测试处理器Factory类 (189)
5.5.3 进一步完善试处理器Factory类 (191)
5.5.4 测试处理器Factory类 (194)
5.5.5 为每一个处理器类建立独立的工厂类 (195)
5.5.6 测试处理器Factory类 (198)
5.6 对程序代码进行稽核和度量的工作 (198)
5.6.1 程序代码稽核 (198)
5.6.2 程序代码度量 (199)
5.7 Check In本章的源程序 (201)
5.8 处理器类和处理器工厂类的完善 (202)
5.9 结论 (204)
第6章 搜寻处理目标的设计和实现——Finders (207)
6.1 搜寻处理目标类的思考和设计 (207)
6.2 设定本章开发项目 (210)
6.3 通用搜寻类-TFinder (212)
6.4 目标文件搜寻类-TFileFinder (213)
6.5 使用Factory设计模式-TFinderFactory (218)
6.6 封装处理目标类-TCandidate (219)
6.7 使用TDD测试类设计和实现 (221)
6.8 程序代码风格的讨论 (225)
6.8.1 TFinder和TFileFinder类的改善 (225)
6.9 结论 (234)
第7章 封装处理目标 (237)
7.1 设定本章开发环境 (240)
7.2 TCandidateFactory类 (240)
7.3 修改TCandidate类 (242)
7.4 修改客户端程序代码 (244)
7.5 重新使用TDD测试修改后的TCandidate类 (246)
7.6 结论 (251)
第8章 谁执行串联和集成的工作——Coordinator和Task (255)
8.1 设计架构的思考 (256)
8.1.1 类架构设计 (259)
8.1.2 类互动 (262)
8.2 建立本章开发项目 (263)
8.3 类的设计和实现 (265)
8.3.1 使用Fa?ade设计模式 (265)
8.3.2 不光是提供Fa?ade功能 (268)
8.4 工作分派类TPFMTaskDispatcher (268)
8.4.1 TPFMTaskDispatcher类的设计和实现 (269)
8.4.2 修改TPFMCoordinator使用TPFMTaskDispatcher类 (272)
8.4.3 修改TPFMManager类 (272)
8.5 以工作指派思想设计PFM需要执行的工作-TPFMTask (275)
8.5.1 采用接口设计 (275)
8.5.2 工作类设计 (277)
8.5.3 TPFMTask工作类的实现 (279)
8.5.4 TScheduledTask类的设计和实现 (281)
8.5.5 TSpecifiedTask类的设计和实现 (282)
8.5.6 完成TPFMTaskDispatcher类 (284)
8.6 使用TDD进行测试 (285)
8.7 TPFMTask的工厂类 (290)
8.7.1 使用TDD测试TPFMTaskFactory (292)
8.8 改善TPFMTaskDispatcher类 (293)
8.8.1 为TPFMTaskDispatcher加入对象池机制 (295)
8.8.2 修改TPFMTaskDispatcher类相关的方法 (304)
8.8.3 测试用例可以帮助我们进行所有的测试吗 (305)
8.9 程序代码稽核和程序代码度量 (312)
8.9.1 程序代码稽核 (313)
8.9.2 程序代码度量 (313)
8.10 Check In本章源程序 (319)
8.11 结论 (320)
第9章 如何持久储存——数据库处理器和Adapter (323)
9.1 设计架构的思考 (323)
9.2 准备本章范例项目 (326)
9.3 TPFMDBAdapter类 (328)
9.4 TPFMDBBKAdapter类 (329)
9.5 修改TPFMDBHandler类 (338)
9.6 使用TDD测试数据库处理器类 (339)
9.7 程序代码稽核和程序代码度量 (343)
9.7.1 程序代码稽核 (343)
9.7.2 程序代码度量 (345)
9.8 结论 (346)
第10章 PFM系统和Assembly的设计 (349)
10.1 封装架构的思考 (349)
10.1.1 如何重新组织C#类文件 (350)
10.2 准备本章范例项目 (356)
10.3 从最简单的地方开始-PFMSystemExceptions包 (357)
10.4 开发PFMSystemGlobals包 (358)
10.5 开发PFMSystemConfigurations包 (359)
10.6 开发PFMSystemCandidate包 (361)
10.7 开发Finders Assembly (362)
10.8 开发处理器Assembly (364)
10.9 开发PFM系统核心Assembly (365)
10.10 如何确定Assembly能够正确工作 (367)
10.11 结论 (373)
第11章 让我们完工吧,OO和RAD (375)
11-1 准备本章的开发环境 (375)
11.2 如何撰写常驻在Windows工具栏上的.NET程序 (377)
11.2.1 自定义ApplicationContext对象 (379)
11.2.2 修改C# Windows Form主程序 (383)
11.3 如何设定系统时钟触发PFM系统的服务 (384)
11.4 集成PFM主程序和PFM类 (385)
11.5 Ready,Set,Go (387)
11.6 测试PFM主程序 (388)
11.7 让PFM主程序更具响应性 (390)
11.7.1 更准确的显示时间 (390)
11.7.2 PFM系统工作时改变程序显示的图像 (391)
11.7.3 加入执行指定工作的服务 (392)
11.8 保存PFM系统主程序 (394)
11.9 结论 (394)
第12章 回到RAD,图形用户界面和组件 (397)
12.1 PFM公用程序设计思考 (398)
12.2 准备本章开发环境 (399)
12.3 PFM公用主程序 (402)
12.3.1 PFM公用程序定义程序单元 (403)
12.3.2 PFM公用主程序单元 (404)
12.3.3 PFM公用程序辅助类 (411)
12.4 执行PFM公用程序 (415)
12.5 保存本章开发结果 (420)
12.6 结论 (420)
第13章 撰写高效率的.NET应用程序 (423)
13.1 影响.NET执行效率的因素 (423)
13.1.1 虚拟堆栈机器 (424)
13.1.2 即时编译器(JIT) (426)
13.1.3 最优化机器编译器 (428)
13.1.4 正确使用.NET机制和Framework (430)
13.2 撰写高效率.NET应用程序 (433)
13.2.1 和垃圾回收器(Garbage Collection)协作 (434)
13.2.2 更好地使用Collection类 (438)
13.2.3 了解引用对象和值对象的使用 (441)
13.2.4 Boxing/Unboxing (446)
13.2.5 字符串处理的陷阱 (449)
13.2.6 小心使用Reflection (450)
13.2.7 使用效率监督工具 (451)
13.3 一些通用的建议 (452)
13.4 C#和设计模式的执行效率 (455)
13.4.1 Command设计模式 (455)
13.4.2 FlyWeight设计模式 (459)
13.5 结论 (463)
第14章 更多的设计和实现,您能继续吗 (465)
第1章 一个简单的想法 (7)
1.1 找寻问题的本质 (13)
1.2 搜寻解决方法 (15)
1.2.1 面向对象开发方法 (15)
1.2.2 测试驱动开发(TDD-Test-Driven Development) (16)
1.2.3 结合面向对象分析/面向对象设计和XP/TDD (16)
1.3 结论 (17)
第2章 分析和设计架构的思考 (19)
2.1 从自然的场景开始构思 (19)
2.2 PFM系统的设计 (22)
2.2.1 需求捕获 (22)
2.2.2 使用需求分析 (24)
2.2.3 产品设计 (27)
2.3 类架构的思考 (34)
2.4 建立开发环境 (35)
2.4.1 建立版本控制项目 (36)
2.5 结论 (43)
第3章 TDD和NUnit框架 (45)
3.1 取得NUnit For .NET (45)
3.2 测试驱动开发模型 (46)
3.3 使用NUnit框架 (47)
3.3.1 范例场景 (48)
3.3.2 在C#项目中使用NUnit (49)
3.3.3 使用NUnit框架建立测试用例 (50)
3.3.4 NUnit框架提供测试服务的函数 (62)
3.3.5 使用测试包(Test Suite) (63)
3.3.6 测试种类(Test Category) (68)
3.4 结论 (74)
第4章 执行引擎和XML驱动设计 (77)
4.1 设计架构的思考 (78)
4.2 设定本章开发项目 (83)
4.3 封装配置信息类设计 (87)
4.3.1 TPFMConfig类的设计 (88)
4.3.2 TPFMConfigManager类的设计 (91)
4.3.3 TPFMSchedule类设计 (93)
4.3.4 TPFMScheduleManager类设计 (94)
4.4 从面向对象分析/设计转换到XP/TDD (96)
4.4.1 TPFMConfigManager类实现 (97)
4.4.2 TPFMScheduleManager类实现 (101)
4.4.3 建立测试用例测试设计和实现的类 (104)
4.5 观察到父类的迹象 (111)
4.5.1 设计TPFMManager (114)
4.5.2 使用TDD测试TPFMManager (119)
4.6 改善和重构TPFMManager类 (122)
4.7 使用Together 检查程序代码质量 (131)
4.8 类使用的设计模式 (140)
4.9 我们学到了什么 (142)
4.10 开发周期管理 (143)
4.11 另外一种开发配置 (146)
4.12 结论 (148)
第5章 多元,弹性架构的设计和实现——Handlers (151)
5.1 设计架构的思考 (152)
5.2 设定本章开发项目 (159)
5.3 处理器接口和处理器类的设计和实现 (160)
5.4 处理器类派生类设计和实现 (163)
5.4.1 文件处理器类- TPFMFileHandler (164)
5.4.2 压缩和反压缩处理器类-TPFMZipHandler (167)
5.4.3 加密和解密处理器类 (175)
5.4.4 目录处理器类 (181)
5.4.5 一切都很好,除了…… (184)
5.5 处理器工厂类设计和实现 (186)
5.5.1 处理器Factory类 (186)
5.5.2 测试处理器Factory类 (189)
5.5.3 进一步完善试处理器Factory类 (191)
5.5.4 测试处理器Factory类 (194)
5.5.5 为每一个处理器类建立独立的工厂类 (195)
5.5.6 测试处理器Factory类 (198)
5.6 对程序代码进行稽核和度量的工作 (198)
5.6.1 程序代码稽核 (198)
5.6.2 程序代码度量 (199)
5.7 Check In本章的源程序 (201)
5.8 处理器类和处理器工厂类的完善 (202)
5.9 结论 (204)
第6章 搜寻处理目标的设计和实现——Finders (207)
6.1 搜寻处理目标类的思考和设计 (207)
6.2 设定本章开发项目 (210)
6.3 通用搜寻类-TFinder (212)
6.4 目标文件搜寻类-TFileFinder (213)
6.5 使用Factory设计模式-TFinderFactory (218)
6.6 封装处理目标类-TCandidate (219)
6.7 使用TDD测试类设计和实现 (221)
6.8 程序代码风格的讨论 (225)
6.8.1 TFinder和TFileFinder类的改善 (225)
6.9 结论 (234)
第7章 封装处理目标 (237)
7.1 设定本章开发环境 (240)
7.2 TCandidateFactory类 (240)
7.3 修改TCandidate类 (242)
7.4 修改客户端程序代码 (244)
7.5 重新使用TDD测试修改后的TCandidate类 (246)
7.6 结论 (251)
第8章 谁执行串联和集成的工作——Coordinator和Task (255)
8.1 设计架构的思考 (256)
8.1.1 类架构设计 (259)
8.1.2 类互动 (262)
8.2 建立本章开发项目 (263)
8.3 类的设计和实现 (265)
8.3.1 使用Fa?ade设计模式 (265)
8.3.2 不光是提供Fa?ade功能 (268)
8.4 工作分派类TPFMTaskDispatcher (268)
8.4.1 TPFMTaskDispatcher类的设计和实现 (269)
8.4.2 修改TPFMCoordinator使用TPFMTaskDispatcher类 (272)
8.4.3 修改TPFMManager类 (272)
8.5 以工作指派思想设计PFM需要执行的工作-TPFMTask (275)
8.5.1 采用接口设计 (275)
8.5.2 工作类设计 (277)
8.5.3 TPFMTask工作类的实现 (279)
8.5.4 TScheduledTask类的设计和实现 (281)
8.5.5 TSpecifiedTask类的设计和实现 (282)
8.5.6 完成TPFMTaskDispatcher类 (284)
8.6 使用TDD进行测试 (285)
8.7 TPFMTask的工厂类 (290)
8.7.1 使用TDD测试TPFMTaskFactory (292)
8.8 改善TPFMTaskDispatcher类 (293)
8.8.1 为TPFMTaskDispatcher加入对象池机制 (295)
8.8.2 修改TPFMTaskDispatcher类相关的方法 (304)
8.8.3 测试用例可以帮助我们进行所有的测试吗 (305)
8.9 程序代码稽核和程序代码度量 (312)
8.9.1 程序代码稽核 (313)
8.9.2 程序代码度量 (313)
8.10 Check In本章源程序 (319)
8.11 结论 (320)
第9章 如何持久储存——数据库处理器和Adapter (323)
9.1 设计架构的思考 (323)
9.2 准备本章范例项目 (326)
9.3 TPFMDBAdapter类 (328)
9.4 TPFMDBBKAdapter类 (329)
9.5 修改TPFMDBHandler类 (338)
9.6 使用TDD测试数据库处理器类 (339)
9.7 程序代码稽核和程序代码度量 (343)
9.7.1 程序代码稽核 (343)
9.7.2 程序代码度量 (345)
9.8 结论 (346)
第10章 PFM系统和Assembly的设计 (349)
10.1 封装架构的思考 (349)
10.1.1 如何重新组织C#类文件 (350)
10.2 准备本章范例项目 (356)
10.3 从最简单的地方开始-PFMSystemExceptions包 (357)
10.4 开发PFMSystemGlobals包 (358)
10.5 开发PFMSystemConfigurations包 (359)
10.6 开发PFMSystemCandidate包 (361)
10.7 开发Finders Assembly (362)
10.8 开发处理器Assembly (364)
10.9 开发PFM系统核心Assembly (365)
10.10 如何确定Assembly能够正确工作 (367)
10.11 结论 (373)
第11章 让我们完工吧,OO和RAD (375)
11-1 准备本章的开发环境 (375)
11.2 如何撰写常驻在Windows工具栏上的.NET程序 (377)
11.2.1 自定义ApplicationContext对象 (379)
11.2.2 修改C# Windows Form主程序 (383)
11.3 如何设定系统时钟触发PFM系统的服务 (384)
11.4 集成PFM主程序和PFM类 (385)
11.5 Ready,Set,Go (387)
11.6 测试PFM主程序 (388)
11.7 让PFM主程序更具响应性 (390)
11.7.1 更准确的显示时间 (390)
11.7.2 PFM系统工作时改变程序显示的图像 (391)
11.7.3 加入执行指定工作的服务 (392)
11.8 保存PFM系统主程序 (394)
11.9 结论 (394)
第12章 回到RAD,图形用户界面和组件 (397)
12.1 PFM公用程序设计思考 (398)
12.2 准备本章开发环境 (399)
12.3 PFM公用主程序 (402)
12.3.1 PFM公用程序定义程序单元 (403)
12.3.2 PFM公用主程序单元 (404)
12.3.3 PFM公用程序辅助类 (411)
12.4 执行PFM公用程序 (415)
12.5 保存本章开发结果 (420)
12.6 结论 (420)
第13章 撰写高效率的.NET应用程序 (423)
13.1 影响.NET执行效率的因素 (423)
13.1.1 虚拟堆栈机器 (424)
13.1.2 即时编译器(JIT) (426)
13.1.3 最优化机器编译器 (428)
13.1.4 正确使用.NET机制和Framework (430)
13.2 撰写高效率.NET应用程序 (433)
13.2.1 和垃圾回收器(Garbage Collection)协作 (434)
13.2.2 更好地使用Collection类 (438)
13.2.3 了解引用对象和值对象的使用 (441)
13.2.4 Boxing/Unboxing (446)
13.2.5 字符串处理的陷阱 (449)
13.2.6 小心使用Reflection (450)
13.2.7 使用效率监督工具 (451)
13.3 一些通用的建议 (452)
13.4 C#和设计模式的执行效率 (455)
13.4.1 Command设计模式 (455)
13.4.2 FlyWeight设计模式 (459)
13.5 结论 (463)
第14章 更多的设计和实现,您能继续吗 (465)
猜您喜欢