大话设计模式 程杰

大话设计模式 程杰 pdf epub mobi txt 电子书 下载 2025

程杰 著
图书标签:
  • 设计模式
  • 大话设计模式
  • 程杰
  • 软件设计
  • 编程
  • Java
  • C++
  • 面向对象
  • 代码
  • 学习
  • 经典
想要找书就要到 静思书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
店铺: 润知天下图书专营店
出版社: 清华大学出版社
ISBN:9787302162063
商品编码:1595545729
包装:平装
出版时间:2007-12-01

具体描述

基本信息

书名:大话设计模式

原价:45.00元

作者:程杰

出版社:清华大学出版社

出版日期:2007-12-01

ISBN:9787302162063

字数:683000

页码:368

版次:1

装帧:平装

开本:16开

商品重量:0.699kg

编辑推荐


感受设计演变过程中所蕴含的大智慧,体会乐与怒的程序人生中值得回味的一幕幕。
设计模式的趣味解读,面向对象的深入剖析。在诙谐与温馨中做一次面向对象编程思维的体操。
本书是准备攀登面向对象编程高峰朋友们的引路人和提携者;本书是学习、体会和领悟了众多大师智慧结晶后的图书作品;本书是你深入理解和感受GoF的《设计模式》及其它大师作品的必备书籍;本书授之以“鱼”,更授之以“渔”。

内容提要


本书通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解GoF(设计模式的经典名著——Design Patterns:Elements of Reusable Object-Oriented Software,中译本名为《设计模式——可复用面向对象软件的基础》的四位作者Erich Gamma、Richard Helm、Ralph Johnson,以及John Vlissides,这四人常被称为Gang of Four,即四人组,简称GoF)总结的23个设计模式。本书共分为29章。其中,第1、3、4、5章着重讲解了面向对象的意义、好处以及几个重要的设计原则;第2章,以及第6到第28章详细讲解了23个设计模式;第29章是对设计模式的全面总结。附录部分是通过一个例子的演变为初学者介绍了面向对象的基本概念。本书的特色是通过小菜与大鸟的趣味问答,在讲解程序的不断重构和演变过程中,把设计模式的学习门槛降低,让初学者可以更加容易地理解——为什么这样设计才是好的?是怎样想到这样设计的?以达到不但授之以“鱼”,还授之以“渔”的目的。引导读者体会设计演变过程中蕴藏的大智慧。
本书适合编程初学者或希望在面向对象编程上有所提高的开发人员阅读。

目录


第1章 代码无错就是优?——简单工厂模式
1.1 面试受挫
1.2 初学者代码毛病
1.3 代码规范
1.4 面向对象编程
1.5 活字印刷,面向对象
1.6 面向对象的好处
1.7 复制vs.复用
1.8 业务的封装
1.9 紧耦合vs.松耦合
1.10 简单工厂模式
1.11 UML类图
第2章 商场促销——策略模式
2.1 商场收银软件
2.2 增加打折
2.3 简单工厂实现
2.4 策略模式
2.5 策略模式实现
2.6 策略与简单工厂结合
2.7 策略模式解析
第3章 拍摄UFO——单一职责原则
3.1 新手机
3.2 拍摄
3.3 没用的东西
3.4 单一职责原则
3.5 方块游戏的设计
3.6 手机职责过多吗?
第4章 考研求职两不误——开放-封闭原则
4.1 考研失败
4.2 开放-封闭原则
4.3 何时应对变化
4.4 两手准备,并全力以赴
第5章 会修电脑不会修收音机?——依赖倒转原则
5.1 MM请求修电脑
5.2 电话遥控修电脑
5.3 依赖倒转原则
5.4 里氏代换原则
5.5 修收音机
第6章 穿什么有这么重要?——装饰模式
6.1 穿什么有这么重要?
6.2 小菜扮靓第一版
6.3 小菜扮靓第二版
6.4 装饰模式
6.5 小菜扮靓第三版
6.6 装饰模式总结
第7章 为别人做嫁衣——代理模式
7.1 为别人做嫁衣!
7.2 没有代理的代码
7.3 只有代理的代码
7.4 符合实际的代码
7.5 代理模式
7.6 代理模式应用
7.7 秀才让小六代其求婚
第8章 雷锋依然在人间——工厂方法模式
8.1 再现活雷锋
8.2 简单工厂模式实现
8.3 工厂方法模式实现
8.4 简单工厂vs.工厂方法
8.5 雷锋工厂
第9章 简历复印——原型模式
9.1 夸张的简历
9.2 简历代码初步实现
9.3 原型模式
9.4 简历的原型实现
9.5 浅复制与深复制
9.6 简历的深复制实现
9.7 复制简历vs.手写求职信
第10章 考题抄错会做也白搭——模板方法模式
10.1 选择题不会做,蒙呗!
10.2 重复=易错 难改
10.3 提炼代码
10.4 模板方法模式
10.5 模板方法模式特点
10.6 主观题,看你怎么蒙
第11章 无熟人难办事?——迪米特法则
11.1 第一天上班
11.2 无熟人难办事
11.3 迪米特法则
第12章 牛市股票还会亏钱?——外观模式
12.1 牛市股票还会亏钱?
12.2 股民炒股代码
12.3 投资基金代码
12.4 外观模式
12.5 何时使用外观模式
第13章 好菜每回味不同——建造者模式
13.1 炒面没放盐
13.2 建造小人一
13.3 建造小人二
13.4 建造者模式
13.5 建造者模式解析
13.6 建造者模式基本代码
第14章 老板回来,我不知道——观察者模式
14.1 老板回来?我不知道!
14.2 双向耦合的代码
14.3 解耦实践一
14.4 解耦实践二
14.5 观察者模式
14.6 观察者模式特点
14.7 观察者模式的不足
14.8 事件委托实现
14.9 事件委托说明
14.10 石守吉失手机后的委托
第15章 就不能不换DB吗?——抽象工厂模式
15.1 就不能不换DB吗?
15.2 最基本的数据访问程序
15.3 用了工厂方法模式的数据访问程序
15.4 用了抽象工厂模式的数据访问程序
15.5 抽象工厂模式
15.6 抽象工厂模式的优点与缺点
15.7 用简单工厂来改进抽象工厂
15.8 用反射 抽象工厂的数据访问程序
15.9 用反射 配置文件实现数据访问程序
15.10 无痴迷,不成功
第16章 无尽加班何时休——状态模式
16.1 加班,又是加班!
16.2 工作状态-函数版
16.3 工作状态-分类版
16.4 方法过长是坏味道
16.5 状态模式
16.6 状态模式好处与用处
16.7 工作状态-状态模式版
第17章 在NBA我需要翻译——适配器模式
17.1 在NBA我需要翻译!
17.2 适配器模式
17.3 何时使用适配器模式
17.4 篮球翻译适配器
17.5 适配器模式的.NET应用
17.6 扁鹊的医术
第18章 如果再回到从前——备忘录模式
18.1 如果再给我一次机会……
18.2 游戏存进度
18.3 备忘录模式
18.4 备忘录模式基本代码
18.5 游戏进度备忘
第19章 分公司=一部门——组合模式
19.1 分公司不就是一部门吗?
19.2 组合模式
19.3 透明方式与安全方式
19.4 何时使用组合模式
19.5 公司管理系统
19.6 组合模式好处
第20章 想走?可以!先买票——迭代器模式
20.1 乘车买票,不管你是谁!
20.2 迭代器模式
20.3 迭代器实现
20.4 .NET的迭代器实现
20.5 迭代高手
第21章 有些类也需计划生育——单例模式
21.1 类也需要计划生育
21.2 判断对象是否是null
21.3 生还是不生是自己的责任
21.4 单例模式
21.5 多线程时的单例
21.6 双重锁定
21.7 静态初始化
第22章 手机软件何时统一——桥接模式
22.1 凭什么你的游戏我不能玩
22.2 紧耦合的程序演化
22.3 合成/聚合复用原则
22.4 松耦合的程序
22.5 桥接模式
22.6 桥接模式基本代码
22.7 我要开发“好”游戏
第23章 烤羊肉串引来的思考——命令模式
23.1 吃烤羊肉串!
23.2 烧烤摊vs.烧烤店
23.3 紧耦合设计
23.4 松耦合设计
23.5 松耦合后
23.6 命令模式
23.7 命令模式作用
第24章 加薪非要老总批?——职责链模式
24.1 老板,我要加薪!
24.2 加薪代码初步
24.3 职责链模式
24.4 职责链的好处
24.5 加薪代码重构
24.6 加薪成功
第25章 世界需要和平——中介者模式
25.1 世界需要和平!
25.2 中介者模式
25.3 安理会做中介
25.4 中介者模式优缺点
第26章 项目多也别傻做——享元模式
26.1 项目多也别傻做!
26.2 享元模式
26.3 网站共享代码
26.4 内部状态与外部状态
26.5 享元模式应用
第27章 其实你不懂老板的心——解释器模式
27.1 其实你不懂老板的心
27.2 解释器模式
27.3 解释器模式好处
27.4 音乐解释器
27.5 音乐解释器实现
27.6 料事如神
第28章 男人和女人——访问者模式
28.1 男人和女人!
28.2 最简单的编程实现
28.3 简单的面向对象实现
28.4 用了模式的实现
28.5 访问者模式
28.6 访问者模式基本代码
28.7 比上不足,比下有余
第29章 OOTV杯超级模式大赛——模式总结
29.1 演讲任务
29.2 报名参赛
29.3 超模大赛开幕式
29.4 创建型模式比赛
29.5 结构型模式比赛
29.6 行为型模式一组比赛
29.7 行为型模式二组比赛
29.8 决赛
29.9 梦醒时分
29.10 没有结束的结尾
附录 A 培训实习生——面向对象基础
A.1 培训实习生
A.2 类与实例
A.3 构造方法
A.4 方法重载
A.5 属性与修饰符
A.6 封装
A.7 继承
A.8 多态
A.9 重构
A.10 抽象类
A.11 接口
A.12 集合
A.13 泛型
A.14 委托与事件
A.15 客套
附录 B 参考文献

作者介绍


程杰,高级软件工程师&高级培训讲师。从事软件开发一线工作近八年时间。曾在申银万国证券公司、上海杨浦区政府、朝华集团下属网游公司、香港晨兴集团等多行业项目开发中担任主程及项目负责人,有丰富的大中型软件开发经验,以及多年的软件设计与项目管理经验。曾任加拿大慧

文摘





序言



《算法的艺术:从经典到实战》 引言: 在信息爆炸的时代,效率与智慧的追求从未停止。算法,作为计算机科学的基石,是解决复杂问题的根本利器。它不仅仅是枯燥的数学公式和抽象的逻辑,更是优化计算、驱动创新、 shaping the digital world 的核心力量。然而,对于许多初学者而言,“算法”二字常常与“困难”、“枯燥”、“遥不可及”划上等号。如何才能拨开迷雾,领略算法的魅力,并将其转化为解决实际问题的强大工具? 《算法的艺术:从经典到实战》正是为应对这一挑战而生。本书旨在以一种系统、深入且富有趣味的方式,带领读者走进算法的奇妙世界。我们不满足于罗列算法的定义与伪代码,更着重于揭示算法背后的思想、演进路径,以及它们在现实世界中的广泛应用。本书强调“理解”而非“记忆”,鼓励读者“思考”而非“复制”,最终帮助读者培养独立分析问题、设计高效算法的能力,成为一名真正能够驾驭算法的“艺术家”。 本书特色与内容概览: 一、 溯源与演进:洞察算法的生命力 本书并非孤立地介绍算法,而是将它们置于历史的长河中审视。我们将从算法的起源讲起,探讨早期数学家和逻辑学家如何孕育出最初的计算思想。接着,我们将梳理不同时期重要算法的出现及其对计算机科学发展的里程碑式影响,例如图灵机、香农的信息论等。通过了解算法的“前世今生”,读者能更深刻地理解其设计哲学和适用边界,而非将其视为 static 的知识点。 早期思想的萌芽: 从古希腊的欧几里得算法到牛顿的微积分,追溯计算思维的萌芽。 计算机时代的奠基: 图灵的通用计算模型,以及它如何为算法的抽象化提供了理论基础。 里程碑式的算法突破: Dijkstra的单源最短路径算法,QuickSort的诞生,以及它们如何改变了信息处理的面貌。 算法设计的哲学: 贪心、分治、动态规划等核心设计范式是如何在解决特定问题时应运而生的。 二、 核心算法体系:精雕细琢的理论基石 本书将系统性地介绍计算机科学中最核心、最经典的算法类型。我们并非为了介绍而介绍,而是力求让每一个算法都“活”起来。对于每一种算法,我们都会深入剖析其: 1. 核心思想: 用最直观、最易懂的语言解释算法解决问题的根本思路。 2. 数学原理: 严谨地推导算法的正确性和效率,理解其背后的数学支撑。 3. 典型应用: 展示算法在不同领域的实际应用案例,让抽象的概念落地。 4. 效率分析: 详细讲解时间复杂度和空间复杂度的概念,以及如何分析和优化算法的性能。 我们将重点涵盖以下几类算法: 排序算法: 从基础的冒泡排序、插入排序、选择排序,到高效的快速排序、归并排序、堆排序,再到特殊的计数排序、桶排序、基数排序。本书不仅会对比它们的性能差异,还会深入分析它们在不同数据分布下的表现。 搜索算法: 线性搜索、二分查找的原理与局限,以及它们如何影响数据检索的效率。 图算法: 深度优先搜索(DFS)、广度优先搜索(BFS)在图遍历中的应用;Dijkstra算法、Floyd-Warshall算法在最短路径问题中的威力;Prim算法、Kruskal算法在最小生成树问题中的巧妙之处。 动态规划(DP): 揭示DP的“最优子结构”和“重叠子问题”两大特性,并通过斐波那契数列、背包问题、最长公共子序列等经典问题,讲解如何构建DP状态转移方程。 贪心算法: 讲解贪心策略的适用条件,并通过活动选择问题、霍夫曼编码等实例,展示贪心算法的简洁与高效。 分治算法: 介绍分治策略如何将大问题分解为小问题,并通过归并排序、快速排序等经典算法,阐释其思想。 字符串匹配算法: KMP算法、Boyer-Moore算法等,讲解如何高效地在文本中查找模式串。 回溯与分支限界: 解决组合优化问题,如N皇后问题、数独求解等,理解其搜索空间的剪枝技巧。 三、 实战演练:将理论转化为代码之美 理论的学习固然重要,但算法的生命力在于实践。《算法的艺术:从经典到实战》将理论与实践紧密结合,每个算法模块都配有丰富的实战案例,并提供清晰、易于理解的伪代码或主流编程语言(如Python、Java)的实现代码。 代码解析: 详细解读代码的每一行,解释其逻辑与算法思想的对应关系。 优化与变种: 探讨算法的各种优化技巧和常见变种,以及如何根据具体场景选择最合适的实现。 复杂度实证: 通过运行代码,观察实际运行时间和内存占用,与理论分析进行对比,加深理解。 工程实践: 讨论算法在实际项目开发中的考量,如数据结构的选择、接口设计、测试方法等。 四、 进阶探索:拓展算法的边界 本书不仅关注基础算法,还将带领读者进行一些进阶的探索,为有志于深入研究的读者提供更广阔的视野。 高级数据结构: 树(二叉树、AVL树、红黑树、B树)、图、堆、哈希表等,理解它们如何支撑高效算法的实现。 NP-hard问题初探: 简单介绍NP-hard问题的概念,以及近似算法和启发式算法在解决这些问题中的作用。 算法的并行化与分布式: 简要介绍如何将算法思想应用于并行和分布式计算环境。 算法的随机性: 蒙特卡洛算法、随机化算法等,揭示随机性在算法设计中的巧妙运用。 五、 学习方法与思维训练:培养算法思维 本书的编写风格注重引导读者主动思考。我们不提供“标准答案”,而是鼓励读者尝试不同的解决方案,并分析其优劣。 问题导向: 每一个算法的介绍都以一个具体的问题为起点,让读者在解决问题的过程中学习算法。 类比与启发: 运用生动的类比和直观的图示,帮助读者理解抽象的算法概念。 挑战性习题: 每章末尾都附有不同难度的习题,涵盖理论证明、算法设计、代码实现等多个方面,帮助读者巩固所学。 错误分析: 引导读者分析常见算法误区,避免“掉坑”。 结语: 《算法的艺术:从经典到实战》不仅仅是一本技术书籍,更是一本思想的启迪之书。它将带领您告别死记硬背,迈向理解与创造的旅程。无论您是计算机科学专业的学生,还是希望提升编程能力的开发者,亦或是对解决复杂问题充满好奇心的学习者,本书都将是您不可多得的良师益友。 掌握算法,意味着掌握了高效解决问题的钥匙。通过本书的学习,您将能够: 清晰地理解各种经典算法的原理与适用场景。 能够根据具体问题,设计出高效、优雅的算法解决方案。 熟练运用算法分析工具,评估算法的性能。 自信地将算法知识应用于实际项目开发中,提升代码质量和效率。 培养严谨的逻辑思维和抽象思维能力。 算法的道路并非坦途,但它充满了智慧的光芒和创造的乐趣。让我们一同踏上这段“算法的艺术”之旅,用智慧和巧思,构建更美好的数字世界。

用户评价

评分

一本令人拍案叫绝的编程武林秘籍!作为一名在代码丛林中摸爬滚打多年的老兵,我总觉得自己的武功招式有些僵化,面对日新月异的软件开发江湖,常常力不从心。直到翻开这本书,我才像是打通了任督二脉,窥见了设计的精髓。作者程杰以其炉火纯青的笔法,将那些抽象、晦涩的设计模式,用生动形象的比喻、贴近实际的案例,一一展现在我眼前。读来不像是在啃枯燥的技术理论,更像是听一位经验丰富的大侠传授独门绝技。从开篇的“简单工厂”到“装饰器”的层层递进,再到“策略”和“模板方法”的灵活运用,每一种模式都仿佛是一件趁手的兵器,让我能更有效地应对各种开发挑战。更难能可贵的是,书中不仅仅是罗列模式,更是强调了“为何”要使用它们,以及在“何种场景”下它们能发挥最大的作用。这种知其然更知其所以然的讲解方式,让我对设计模式的理解更加深刻,也让我开始反思自己过去的一些“野路子”,学会用更优雅、更具扩展性的方式来构建我的代码。这本书,绝对是我近年来技术提升道路上最重要的一笔财富。

评分

一本让我眼前一亮的设计模式入门指南!作为一名刚入行不久的开发者,我对设计模式一直充满了好奇,但又觉得它们高深莫测,难以捉摸。这本书的出现,彻底颠覆了我的看法。作者程杰用一种非常轻松、有趣的方式,将“高冷”的设计模式变得“接地气”。他没有使用任何晦涩难懂的专业术语,而是用生活中的例子,将每一个设计模式的核心思想展现得淋漓尽致。比如,他用“点餐”来解释“工厂模式”,用“给书本加书签”来比喻“装饰器模式”,这些生动形象的比喻,让我在第一时间就抓住了模式的本质。更让我惊喜的是,书中不仅仅是讲解了“是什么”,还深入探讨了“为什么”,以及“何时”使用。这种“知其所以然”的学习方式,让我不再是死记硬背,而是真正理解了设计模式背后的设计思想,也让我能够举一反三,在实际开发中灵活运用。读完这本书,我感觉自己对编程的理解又上了一个台阶,也对未来的软件开发充满了信心。

评分

这绝对是市面上少有的能将设计模式讲得如此透彻又易懂的书籍。我之前接触过几本设计模式的书,但都以失败告终,要么晦涩难懂,要么例子陈旧。这本书则完全不同,作者程杰用一种非常现代、且贴近实际开发场景的方式,为我们揭开了设计模式的面纱。他不仅仅是罗列了各种模式,更重要的是,他通过一系列精心设计的案例,展示了这些模式在真实项目中的应用价值,以及它们如何帮助我们解决实际开发中的痛点。我尤其欣赏书中对“开闭原则”、“里氏替换原则”等设计原则的融入式讲解,这让我意识到,设计模式并非孤立存在,而是与 SOLID 原则紧密相连,是实现这些原则的有力工具。阅读这本书,我仿佛参加了一场场精彩的设计研讨会,从中学到了如何用更少的代码实现更多的功能,如何让代码更具可读性、可维护性和可扩展性。这本书,绝对是每一位想要提升自己代码设计能力的程序员的必读之作。

评分

总算找到了一本让我能真正“读懂”设计模式的书!我之前也尝试过几本介绍设计模式的书,但总是感觉云里雾里,看的时候觉得好像明白了,但一到实际开发中就用不上,甚至觉得越用越复杂。直到我遇到了这本书,一切都变了。作者程杰的文笔非常有感染力,他仿佛坐在你身边,用一种非常平易近人的方式,一点一点地剖析每一个设计模式的核心思想。他没有堆砌那些复杂的术语,而是用各种生活中的例子,将那些原本高高在上的设计原则,变得触手可及。比如讲到“单例模式”时,他会用“一人之下,万人之上”的比喻,瞬间就能抓住重点;讲到“观察者模式”时,更是用订阅报纸的例子,清晰地描绘了发布者和订阅者之间的联动关系。这种“化繁为简”的能力,实在令人佩服。更重要的是,书中不仅仅停留在模式的介绍,还深入探讨了每种模式背后的设计哲学,以及它们如何能够帮助我们写出更易于维护、更易于扩展的代码。读完这本书,我感觉自己不再是被动地套用模式,而是真正理解了模式的“魂”,能够根据实际需求,灵活地选择和组合不同的设计模式,让我的代码质量有了质的飞跃。

评分

这本书简直就是程序员的“内功心法”!在学习编程的过程中,我们往往会专注于“招式”,也就是如何实现具体的功能,但却忽略了“内功”,也就是代码的架构设计和原则。这本书,正是让我认识到“内功”的重要性。作者程杰并没有像一些技术书籍那样,上来就抛出一堆复杂的概念和代码,而是循序渐进,从最基础的几个设计模式开始,层层深入,让我能够一步一步地建立起对设计模式的认知体系。我尤其喜欢书中对每个模式的“优缺点”以及“适用场景”的详细分析,这让我能够避免“滥用”设计模式,做到“恰到好处”地运用。比如,当我遇到一个需要频繁修改算法的场景时,我立刻就会想到“策略模式”;当我需要为一个对象在不同状态下提供不同行为时,“状态模式”就会在我脑海中浮现。这种“信手拈来”的感觉,正是这本书带给我的最大收获。它不仅仅是一本技术书,更像是一位经验丰富的导师,引导我不断提升自己的设计能力,让我能够写出更健壮、更优雅的软件。

评分

非常不错

评分

书到了,还不错可是我明明要发票了。怎么没给我发呢。这点不满意。

评分

通俗易懂

评分

幽默诙谐,是一本好书

评分

非常不错

评分

书到了,还不错可是我明明要发票了。怎么没给我发呢。这点不满意。

评分

好高好高好高好高好高

评分

很不错

评分

是正品,不错

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有