词条 | 软件秘笈:设计模式那点事 |
释义 | 基本信息作者:郑阿奇(作者) 出版社: 电子工业出版社; 第1版 (2011年11月1日) 丛书名: 魅力·实践·发现 页数: 628页 ISBN: 9787121147821 内容简介本书在第1章软件设计模式概述后,从第2章到第24章诠释23个软件设计模式。每一种都以一个生活故事开始,然后是模式定义、模式分析、模式实现、设计原则和使用场合。模式实现通过Eclipse中的Java工程展开,采用软件编程诠释设计模式故事中的情节和操作,非常有趣。在这个基础上,总结该软件设计模式的设计原则,最后提出使用场合。第25章对各种软件设计模式进行系统总结,第26章是各种软件设计模式综合应用。 目录目 录 1 设计模式概述 1 1.1 计算机软件的发展现状 2 1.2 引入设计模式的必要性 2 1.3 软件设计遵循的基本原则 3 1.3.1 高内聚、低耦合 3 1.3.2 面向抽象编程 3 1.3.3 多用组合少用继承 4 1.3.4 “开-闭”原则 4 1.4 设计模式概述 4 1.4.1 什么是设计模式 4 1.4.2 为什么需要设计模式 5 1.4.3 如何正确应用设计模式 5 1.5 设计模式的分类 5 1.5.1 创建型模式 6 1.5.2 结构型模式 6 1.5.3 行为型模式 6 1.6 学会归纳和总结 7 第一部分 创建型模式 2 曹操献刀:工厂方法模式 11 2.1 三国故事之曹操献刀 12 2.2 模式定义 13 2.3 故事中的模式分析 13 2.3.1 故事中的角色 13 2.3.2 抽象化分析方法 14 2.3.3 工厂方法模式的静态建模 15 2.4 故事的工厂方法模式实现 17 2.4.1 建立产品 17 2.4.2 建立工厂 19 2.4.3 故事情节的历史重现 21 2.4.4 用八星宝刀来考验模式 22 2.5 设计原则 25 2.6 使用场合 28 2.7 本章要点 29 3 肯德基:抽象工厂模式 31 3.1 发生在肯德基的故事 32 3.2 模式定义 33 3.3 故事中的模式分析 33 3.3.1 故事中的角色 33 3.3.2 抽象化分析 34 3.3.3 抽象工厂模式的静态建模 35 3.4 故事的抽象工厂模式实现 36 3.4.1 抽象食物的建立 36 3.4.2 建立不同食物的抽象基类 37 3.4.3 创建具体的食物 40 3.4.4 建立工厂 43 3.4.5 创建客户类 45 3.4.6 故事情节的展现 48 3.5 设计原则 49 3.6 使用场合 50 3.7 本章要点 53 4 手机套餐:建造者模式 54 4.1 手机套餐 55 4.2 模式定义 56 4.3 故事中的模式分析 56 4.3.1 角色分析 56 4.3.2 建造者模式的静态建模 57 4.4 模式实现 58 4.4.1 创建产品——手机套餐 59 4.4.2 建立抽象建造者 61 4.4.3 建立具体建造者 62 4.4.4 创建指导者 65 4.4.5 让客户订购手机套餐 66 4.4.6 如何简化建造者实现 68 4.5 设计原则 68 4.6 使用场合 70 4.7 本章要点 73 5 大学生初入社会:原型模式 75 5.1 大学生初入社会 76 5.2 模式定义 77 5.3 大学生故事的模式分析 78 5.3.1 故事情节分析 78 5.3.2 原型模式的静态建模 78 5.4 大学生故事的原型模式实现 80 5.4.1 原型的建立 81 5.4.2 创建生成原型对象的工厂 84 5.4.3 大学生初入社会的生活展现 86 5.5 设计原则 88 5.6 使用场合 95 5.7 本章要点 96 6 课堂上互动:单例模式 98 6.1 课堂上发生的故事 99 6.2 模式定义 100 6.3 模式分析 101 6.4 模式实现 102 6.4.1 实现一:使用同步线程安全创建单例对象 102 6.4.2 实现二:创建一个类全局对象实例作为单例对象 106 6.4.3 提高:多例模式实现 107 6.5 设计原则 112 6.6 使用场合 112 6.7 本章要点 114 第二部分 结构型模式 7 电源转换:适配器模式 117 7.1 生活中的适配器 118 7.2 模式定义 118 7.3 模式分析 119 7.3.1 适配器中的角色 119 7.3.2 静态建模 119 7.4 模式实现 120 7.4.1 抽象电源建立 121 7.4.2 创建220V电源 122 7.4.3 创建12V电源 123 7.4.4 测试220V电源和12V电源 125 7.4.5 对象适配器实现 126 7.4.6 类适配器模式实现 129 7.5 设计原则 132 7.6 使用场合 133 7.7 本章要点 135 8 开关与电灯:桥接模式 137 8.1 开关与电灯 138 8.2 模式定义 139 8.3 一般化分析 139 8.4 一般化实现 140 8.4.1 建立抽象开关 141 8.4.2 电灯实现 142 8.4.3 客户端测试 145 8.4.4 对于扩展功能的思考 146 8.5 桥接模式分析方法 147 8.6 开关与电灯的桥接模式实现 147 8.6.1 创建电灯接口 147 8.6.2 创建开关 148 8.6.3 电灯实现 151 8.6.4 客户端测试 153 8.7 设计原则 155 8.8 使用场合 156 8.9 本章要点 157 9 公司层级结构:组合模式 159 9.1 公司层级结构 160 9.2 模式定义 160 9.3 一般化分析 161 9.4 一般化实现 162 9.4.1 创建普通员工 162 9.4.2 创建管理者 164 9.4.3 客户端测试 168 9.4.4 系统结构的思考 171 9.5 组合模式分析方法 171 9.6 公司结构的组合模式实现 172 9.6.1 建立员工抽象 172 9.6.2 创建管理者 175 9.6.3 创建普通员工 177 9.6.4 客户端测试 179 9.7 设计原则 182 9.8 使用场合 183 9.9 本章要点 184 10 染色馒头:装饰者模式 186 10.1 染色馒头事件 187 10.2 模式定义 188 10.3 一般化分析 188 10.4 一般化实现 189 10.4.1 创建馒头接口 189 10.4.2 正常馒头 190 10.4.3 染色馒头 193 10.4.4 甜馒头 195 10.4.5 如何生产甜玉米馒头 199 10.5 装饰者模式分析方法 199 10.6 染色馒头的装饰者模式实现 200 10.6.1 创建抽象装饰者 200 10.6.2 创建装饰者 202 10.6.3 生产甜玉米馒头 204 10.7 设计原则 206 10.8 使用场合 207 10.9 本章要点 209 11 美食天下:外观模式 211 11.1 美食天下 212 11.2 模式定义 213 11.3 一般化分析 214 11.4 一般化实现 214 11.4.1 创建糖醋排骨接口 214 11.4.2 糖醋排骨实现 215 11.4.3 客户端测试 216 11.5 外观模式分析方法 218 11.5.1 让厨师为我们做菜 218 11.5.2 外观模式的静态建模 218 11.6 糖醋排骨的外观模式实现 219 11.6.1 建立外观门面 219 11.6.2 客户端测试 221 11.7 设计原则 222 11.8 使用场合 224 11.9 本章要点 227 12 五子棋游戏:享元模式 229 12.1 五子棋游戏 230 12.2 模式定义 231 12.3 模式分析 231 12.3.1 五子棋游戏分析 231 12.3.2 静态建模 232 12.4 模式实现 233 12.4.1 创建抽象棋子 233 12.4.2 棋子实现 234 12.4.3 创建棋子工厂 234 12.4.4 客户端测试 236 12.4.5 如何实现棋子的位置 238 12.4.6 测试棋子的外蕴状态 242 12.5 设计原则 244 12.6 使用场合 245 12.7 本章要点 247 13 红酒经销:代理模式 249 13.1 红酒代理商 250 13.2 模式定义 250 13.3 模式分析 251 13.3.1 消费者购买行为分析 251 13.3.2 静态建模 252 13.4 模式实现 252 13.4.1 创建红酒生产厂商 253 13.4.2 到红酒工厂购买红酒 254 13.4.3 创建红酒代理商 255 13.4.4 到红酒代理商处购买红酒 257 13.5 设计原则 258 13.6 使用场合 259 13.7 本章要点 265 第三部分 行为型模式 14 学生生病了:责任链模式 269 14.1 学生生病了 270 14.2 模式定义 271 14.3 普通抽象化分析 271 14.3.1 学生请假流程分析 271 14.3.2 抽象化静态建模 272 14.4 普通抽象化实现 273 14.4.1 学生请假实现 273 14.4.2 创建抽象请假消息处理者 275 14.4.3 请假处理者具体实现 277 14.4.4 客户端测试 279 14.4.5 如何面对变化 282 14.4.6 使用外观封装变化部分 283 14.5 责任链模式分析方法 288 14.5.1 如何实现消息传递 288 14.5.2 责任链模式静态建模 288 14.6 请假流程的责任链模式实现 289 14.6.1 抽象化修改 289 14.6.2 完善具体消息处理者 291 14.6.3 在外观中设置消息处理责任链 292 14.6.4 客户端测试 296 14.7 设计原则 296 14.8 使用场合 297 14.9 本章要点 299 15 邮局:命令模式 301 15.1 生活中的邮局 302 15.2 模式定义 303 15.3 模式分析 303 15.3.1 邮局例子分析 303 15.3.2 静态建模 303 15.4 模式实现 304 15.4.1 创建消息接收者 305 15.4.2 创建中间角色邮局 305 15.4.3 创建消息发送者 307 15.4.4 让邮局开始工作 308 15.4.5 优化我们的设计 310 15.5 设计原则 312 15.6 使用场合 313 15.7 本章要点 316 16 创建自己的语言:解释器模式 318 16.1 创建自己的语言解释器 319 16.2 模式定义 320 16.3 模式分析 320 16.3.1 “myida”语言分析 320 16.3.2 “myida”语言解释器原理 321 16.4 模式实现 323 16.4.1 创建上下文环境 323 16.4.2 创建解析表达式 326 16.4.3 让“myida”语言解释器开始工作 336 16.5 设计原则 338 16.6 使用场合 339 16.7 本章要点 341 17 循环遍历:迭代器模式 343 17.1 让迭代器代替for循环 344 17.2 模式定义 345 17.3 模式分析 345 17.3.1 如何遍历集合对象 345 17.3.2 迭代器模式静态建模 346 17.4 模式实现 347 17.4.1 人员信息实现 348 17.4.2 人员集合实现 349 17.4.3 迭代器实现 352 17.4.4 让迭代器遍历集合对象 354 17.4.5 迭代器如何面对变化 357 17.4.6 客户端发生哪些变化 360 17.5 设计原则 362 17.6 使用场合 362 17.7 本章要点 364 18 多人聊天室:中介者模式 366 18.1 多人聊天室 367 18.2 模式定义 368 18.3 模式分析 368 18.3.1 多人聊天室结构分析 368 18.3.2 静态建模 369 18.4 模式实现 370 18.4.1 创建用户接口 370 18.4.2 创建中介者 371 18.4.3 创建用户 373 18.4.4 运行多人聊天室 377 18.5 设计原则 380 18.6 使用场合 380 18.7 本章要点 382 19 过关类游戏:备忘录模式 384 19.1 过关类游戏 385 19.2 模式定义 385 19.3 模式分析 386 19.3.1 备忘录模式特点 386 19.3.2 备忘录模式静态建模 386 19.4 模式实现 387 19.4.1 白箱备忘录模式实现 388 19.4.2 黑箱备忘录模式实现 396 19.5 设计原则 404 19.6 使用场合 405 19.7 本章要点 407 20 高温预警:观察者模式 409 20.1 高温预警系统 410 20.2 模式定义 411 20.3 模式分析 411 20.3.1 高温预警过程分析 411 20.3.2 静态建模 411 20.4 模式实现 412 20.4.1 创建抽象角色 413 20.4.2 具体主题实现 415 20.4.3 具体观察者实现 419 20.4.4 让系统开始运行 421 20.5 设计原则 423 20.6 使用场合 423 20.7 本章要点 426 21 文档编辑模式切换:状态模式 428 21.1 文档编辑器中的模式切换 429 21.2 模式定义 430 21.3 模式分析 430 21.4 模式实现 431 21.4.1 创建空白的上下文环境 431 21.4.2 创建状态接口 431 21.4.3 完善上下文内容 433 21.4.4 创建具体状态 434 21.4.5 客户端测试 437 21.5 设计原则 440 21.6 使用场合 440 21.7 本章要点 442 22 商场促销:策略模式 443 22.1 商场促销商品 444 22.2 模式定义 445 22.3 模式分析 445 22.3.1 商品促销中的策略分析 445 22.3.2 策略模式静态建模 446 22.4 模式实现 446 22.4.1 创建策略接口 447 22.4.2 创建具体策略 448 22.4.3 创建上下文环境 450 22.4.4 消费者购物消费 451 22.4.5 策略模式与条件判断的比较 454 22.5 设计原则 456 22.6 使用场合 456 22.7 本章要点 459 23 生活行为:模板方法模式 461 23.1 每日的生活行为 462 23.2 模式定义 463 23.3 模式分析 463 23.3.1 生活行为分析 463 23.3.2 静态建模 464 23.4 模式实现 465 23.4.1 建立算法骨架 465 23.4.2 创建具体实现 467 23.4.3 客户端测试 469 23.5 设计原则 471 23.6 使用场合 472 23.7 本章要点 475 24 公司层级结构:访问者模式 477 24.1 公司层级结构 478 24.2 模式定义 479 24.3 模式分析 479 24.3.1 组合模式回顾 479 24.3.2 访问者模式分析 480 24.3.3 访问者模式静态建模 481 24.4 模式实现 483 24.4.1 员工实现 483 24.4.2 访问者实现 488 24.4.3 让员工接收访问者 490 24.4.4 客户端测试 491 24.4.5 扩展的思考 494 24.5 设计原则 498 24.6 使用场合 499 24.7 本章要点 502 25 设计模式总结 504 25.1 为什么学习设计模式 505 25.1.1 让工作变得轻松 505 25.1.2 让程序变得优雅 507 25.1.3 要学会设计原则 507 25.2 设计模式六大原则 509 25.2.1 “开-闭”原则(OCP) 509 25.2.2 单一职责原则(SRP) 519 25.2.3 依赖倒置原则(DIP) 527 25.2.4 接口隔离原则(ISP) 536 25.2.5 里氏替换原则(LSP) 543 25.2.6 迪米特法则(LoD) 544 25.3 勤于思考,善于总结 553 25.3.1 专心、用心、信心 553 25.3.2 做一个有思想的人 554 25.4 实践出真知 554 26 MVC设计实践 556 26.1 让你的思维活跃起来 557 26.2 如何设计MVC架构 557 26.3 第一个MVC框架——Joker MVC 558 26.3.1 环境介绍 558 26.3.2 MVC起航 558 26.3.3 Joker MVC架构分析 563 26.3.4 Joker MVC架构实现 566 26.3.5 发布joker-1.0部署测试 599 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。