JavaScript设计模式

JavaScript设计模式 pdf epub mobi txt 电子书 下载 2026

出版者:人民邮电出版社
作者:Addy Osmani
出品人:
页数:241
译者:徐涛
出版时间:2013-6-1
价格:49
装帧:平装
isbn号码:9787115314543
丛书系列:
图书标签:
  • JavaScript
  • 设计模式
  • 前端开发
  • Web开发
  • Web前端开发
  • Web前端
  • 前端
  • javascript
  • JavaScript
  • 设计模式
  • 前端开发
  • 软件工程
  • 编程
  • Web开发
  • 代码质量
  • 可维护性
  • 重用性
  • 最佳实践
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《JavaScript设计模式》是JavaScript设计模式的学习指南。全书分为14章。首先介绍了什么是模式、模式的结构、类别、模式的分类、如何编写模式等等;然后,集中介绍了很多流行的设计模式在JavaScript中的应用,包括Module(模块)模式、Observer(观察者)模式、Facade(外观)模式和Mediator(中介者)模式;最后,还探讨了模块化的JavaScript模式、jQuery及其插件中的设计模式。

《JavaScript设计模式》适合专业的Web开发人员和前端工程师阅读。通过阅读本书,他们将能够提高对设计模式的认识,并学会如何将设计模式应用到JavaScript编程语言中。

作者简介

addy osmani,谷歌chrome团队的开发项目工程师,对javascript应用程序架构有着强烈的爱好。他创建了比较流行的项目,如todomvc,并对modernizr和jquery等其他开源项目也做出很大贡献。作为一位高产的博主(http://addyosmani.com/blog),addy的文章经常出现在《javascript电子周刊》、《smashing杂志》及很多其他出版物上。

目录信息

第1章 介绍 1
第2章 什么是模式 3
我们每天都在使用模式 4
第3章 模式状态测试、proto模式及三法则 6
第4章 设计模式的结构 8
第5章 编写设计模式 11
第6章 反模式 13
第7章 设计模式类别 15
第8章 设计模式分类 17
有关类(class)的要点 17
第9章 javascript设计模式 20
9.1 constructor(构造器)模式 21
9.1.1 对象创建 21
9.1.2 基本constructor(构造器) 23
9.1.3 带原型的constructor(构造器) 24
9.2 module(模块)模式 25
9.2.1 对象字面量 25
9.2.2 module(模块)模式 27
9.2.3 module模式变化 31
.9.3 revealing module(揭示模块)模式 36
9.3.1 优点 38
9.3.2 缺点 38
9.4 singleton(单例)模式 38
9.5 observer(观察者)模式 42
9.5.1 observer(观察者)模式和publish/subscribe(发布/订阅)模式的区别 47
9.5.2 优点 49
9.5.3 缺点 49
9.5.4 publish/subscribe实现 49
9.6 mediator(中介者)模式 59
9.6.1 基本实现 60
9.6.2 高级实现 61
9.6.3 示例 67
9.6.4 优点和缺点 68
9.6.5 中介者(mediator)与观察者(observer) 69
9.6.6 中介者(mediator)与外观(facade) 69
9.7 prototype(原型)模式 70
9.8 command(命令)模式 73
9.9 facade(外观)模式 75
有关抽象的要点 78
9.10 factory(工厂)模式 78
9.10.1 何时使用factory模式 81
9.10.2 何时不应使用factory模式 81
9.10.3 abstract factory(抽象工厂) 81
9.11 mixin模式 82
9.11.1 子类化 83
9.11.2 mixin(混入) 84
9.12 decorator(装饰者)模式 88
9.12.1 伪经典decorator(装饰者) 91
9.12.2 使用jquery的装饰者 96
9.12.3 优点和缺点 97
9.13 flyweight(享元)模式 98
9.13.1 使用flyweight模式 98
9.13.2 flyweight和共享数据 99
9.13.3 实现经典flyweight(享元) 99
9.13.4 转换代码以使用flyweight(享元)模式 103
9.13.5 基本工厂 105
9.13.6 管理外部状态 106
9.13.7 flyweight(享元)模式和dom 107
第10章 javascript mv*模式 112
10.1 mvc 112
smalltalk-80 mvc 113
10.2 为javascript开发人员提供的mvc 114
10.2.1 model(模型) 114
10.2.2 view(视图) 116
10.2.3 controller(控制器) 119
10.2.4 spine.js与backbone.js 120
10.3 mvc为我们提供了什么 122
10.4 javascript中的smalltalk-80 mvc 122
10.4.1 深入挖掘 123
10.4.2 总结 123
10.5 mvp 124
10.5.1 model、view和presenter 124
10.5.2 mvp或mvc? 125
10.5.3 mvc、mvp和backbone.js 126
10.6 mvvm 128
10.6.1 历史 129
10.6.2 model 129
10.6.3 view 130
10.6.4 viewmodel 133
10.6.5 小结:view和viewmodel 135
10.6.6 小结:viewmodel和model 135
10.7 利与弊 135
10.7.1 优点 135
10.7.2 缺点 136
10.8 使用更松散数据绑定的mvvm 136
10.9 mvc、mvp与mvvm 141
10.10 backbone.js与knockoutjs 142
第11章 模块化的javascript设计模式 144
11.1 脚本加载器要点 145
11.2 amd 145
11.2.1 模块入门 146
11.2.2 使用dojo的amd模块 150
11.2.3 amd模块设计模式(dojo) 151
11.2.4 使用jquery的amd模块 152
11.2.5 amd总结 155
11.3 commonjs 155
11.3.1 入门指南 156
11.3.2 使用多个依赖 157
11.3.3 支持commonjs的加载器和框架 158
11.3.4 commonjs适用于浏览器吗? 158
11.3.5 延伸阅读 159
11.4 amd和commonjs:互相竞争,标准同效 159
umd:用于插件的amd和commonjs兼容模块 160
11.5 es harmony 165
11.5.1 具有imports和exports的模块 166
11.5.2 从远程数据源加载的模块 167
11.5.3 模块加载器api 167
11.5.4 用于服务器的类commonjs模块 168
11.5.5 具有构造函数、getter和setter的类 168
11.5.6 es harmony总结 169
11.5.7 延伸阅读 170
11.6 总结 170
第12章 jquery中的设计模式 171
12.1 composite(组合)模式 171
12.2 adapter(适配器)模式 173
12.3 facade(外观)模式 174
12.4 observer(观察者)模式 177
12.5 iterator(迭代器)模式 180
12.6 延迟初始化 181
12.7 proxy(代理)模式 183
12.8 builder(生成器)模式 184
第13章 jquery插件设计模式 187
13.1 模式 188
13.2 lightweight start模式 189
延伸阅读 191
13.3 完整的widget factory模式 191
延伸阅读 194
13.4 嵌套命名空间插件模式 194
延伸阅读 196
13.5 自定义事件插件模式(使用widget factory) 196
延伸阅读 198
13.6 使用dom-to-object bridge模式的原型继承 198
延伸阅读 200
13.7 jquery ui widget factory bridge模式 200
延伸阅读 203
13.8 使用widget factory的jquery mobile widget 203
13.9 requirejs和jquery ui widget factory 206
13.9.1 用法 208
13.9.2 延伸阅读 209
13.10 全局选项和单次调用可重写选项(最佳选项模式) 209
延伸阅读 211
13.11 高可配和高可变的插件模式 211
延伸阅读 213
13.12 是什么使插件超越模式 213
13.12.1 质量 214
13.12.2 代码风格 214
13.12.3 兼容性 214
13.12.4 可靠性 214
13.12.5 性能 214
13.12.6 文档 215
13.12.7 维护的可能性 215
13.13 总结 215
13.14 命名空间模式 215
13.15 命名空间基础 216
13.15.1 单一全局变量 216
13.15.2 命名空间前缀 217
13.15.3 对象字面量表示法 217
13.15.4 嵌套命名空间 221
13.15.5 立即调用的函数表达式(iife) 222
13.15.6 命名空间注入 224
13.16 高级命名空间模式 226
13.16.1 自动嵌套的命名空间 227
13.16.2 依赖声明模式 229
13.16.3 深度对象扩展 229
13.16.4 推荐 232
第14章 总结 233
附录 参考文献 235
· · · · · · (收起)

读后感

评分

原作者Andy Osmani是JavaScript大牛,这本书将GoF的Design Pattern用JavaScript实现。 前八章是Design Pattern的简介,后面章节是各个模式的实例,以及MVC等。 翻译的内容还行,但是代码的缩进真的太随便了!!! 如果可以,还是推荐读原文。  

评分

javascript中有一个名为prototype的属性?what’s the fuck? 看这么烂的书简直是浪费时间! 太不专业,幸好书是首图借的,不然立马扔。幸好书是首图借的,不然立马扔。幸好书是首图借的,不然立马扔。幸好书是首图借的,不然立马扔。幸好书是首图借的,不然立马扔。幸好书是首...  

评分

评分

显然译者的态度有问题。 看原文吧。 随便翻几页就看到这些惨不忍睹的文字:  p83:   对于...开发人员来说, 在...之前,将阅读初学者内容;   p6:  This is a reason why patterns generally focus on addressing a visually identifiable structure   -->...  

评分

用户评价

评分

我是一名刚毕业不久的初级开发者,在学校里接触过设计模式的理论,但总感觉跟实际工作中的代码脱节。我希望能找到一本能帮我从“写代码能跑”跨越到“写出优雅代码”的书。这本《驾驭代码:设计模式的艺术》(一个可能的书名)简直就是我的导师。它最棒的一点是,它没有一上来就抛出复杂的代码例子,而是先用生活中的小故事、流程图来铺垫模式的核心意图。比如,讲解“外观模式”时,它会先描述一个复杂的客户服务流程,然后展示如何用一个简洁的接口来隐藏背后的复杂性。这种教学方式极大地降低了我的入门门槛。而且,书中包含大量的“陷阱与优化”环节,指出了新手在使用某些模式时容易犯的错误,比如过度设计,或者在不需要时强行套用模式。这让我明白了设计模式是为解决问题服务的,而不是为了展示自己懂模式而用的。这本书给我最大的收获是建立了一种正确的编程哲学观,让我开始在写每一个函数、每一个类的时候,都思考其背后的结构和可扩展性。

评分

说实话,我买这本书的时候有点担心它会是那种“十年陈旧”的资料,毕竟技术更新速度太快了。但《设计模式精解与现代应用》(我猜书名里会有类似‘精解’或‘现代’这样的词)完全超出了我的预期。它在开篇就强调了“面向对象思维”在函数式编程思潮下的重新定位,这点非常重要。很多老派的设计模式在纯函数的世界里显得格格不入,但这本书非常巧妙地将“行为”的封装和分离思想融入到高阶函数和柯里化等函数式概念中。我特别欣赏作者对“装饰器模式”的阐述,它不再仅仅是围绕类进行的包装,而是展示了如何通过函数组合链条来实现类似的功能,这对于理解TypeScript中的装饰器语法非常有帮助。此外,书中对“构建者模式”在链式API设计上的应用分析得非常透彻,我感觉自己看懂了Lodash等库内部构造的“魔法”。这本书的语言风格非常轻快活泼,读起来一点也不累,知识点密度却非常高,是那种值得放在手边经常翻阅的宝典。

评分

作为一名资深后端工程师,我本来以为设计模式是前端或者面向对象语言的专属话题,直到最近公司要求我们用Node.js重构一个性能敏感的服务,我才发现,在处理高并发、异步I/O和模块化方面,设计模式的重要性丝毫不亚于Java或C#。我拿起这本书,原本是抱着“随便翻翻”的心态,结果却被其对JavaScript特性的深刻理解所折服。它没有回避JavaScript语言自身的弱点(比如原型继承和异步回调地狱),而是巧妙地利用ES6+的语法特性(如Class、Promise/Async/Await)来优雅地实现经典的设计模式。尤其对“模块化模式”的讲解,简直是神来之笔,它不仅解释了CommonJS和ES Modules的原理,还展示了如何利用这些机制实现依赖注入(DI)的变种形式,以提高单元测试的便利性。这本书的深度在于它没有停留在模式本身,而是将模式视为解决特定技术栈问题的工具,非常注重性能考量,对于提升Node.js应用的健壮性和可维护性提供了直接的指导方针。

评分

这本书简直是为我量身定做的!我最近在深入研究前端框架的源码,发现里面充满了各种设计模式的应用,但很多时候我只是看到了“表象”,对背后的思想和选择感到困惑。手头上的资料大多都是泛泛而谈,真正能结合实际场景,尤其是像React或Vue这类复杂应用场景进行剖析的少之又少。这本《设计模式实战手册》(暂且这么称呼它吧)给我带来了极大的启发。它不是那种枯燥地罗列工厂、单例、观察者模式的教科书,而是非常注重“为什么”和“如何用”的实战派。比如,它对状态管理模式的演变进行了深入的探讨,清晰地展示了从最初的全局对象到Redux/Vuex的演进过程中,设计模式是如何解决实际问题的。作者的叙述逻辑性极强,总能在我思维快要打结的时候,用一个精妙的类比或一个清晰的UML图把我拉回来。读完关于策略模式那一章节,我对如何优化复杂的条件分支结构有了全新的认识,甚至回去重构了正在维护的一个遗留模块,效果立竿见影,代码清晰度提升了好几个量级。这本书的价值在于它将抽象的概念落地,让那些曾经只是停留在“听过”层面的模式,变成了我工具箱里锋利的武器。

评分

这本书给我的感觉是‘深沉而内敛’,不像有些书籍那样追求时髦的技术栈,而是真正沉下心来探讨编程的本质规律。《设计模式的基石与演进》(姑且这么称呼它)的内容结构非常严谨,它不是按照 GoF 的二十三种模式来罗列,而是将模式按照“创建型”、“结构型”、“行为型”的逻辑进行分类,并在每个大类中,先回顾它们在经典面向对象语言中的实现,然后紧接着分析在现代JavaScript(特别是ES Module和面向切面编程AOP的背景下)如何进行适应性改造或替代。我尤其对其中关于“代理模式”与“元编程”结合的章节印象深刻,它揭示了如何通过Proxy对象实现对数据访问的拦截和控制,这比传统的属性重写或函数包装要优雅得多。这本书的深度在于它对模式的“历史演变”和“未来趋势”的把握非常到位,它让我意识到设计模式并非一成不变的教条,而是在技术变迁中不断被重新诠释和应用的“思想武器”。对于那些想从“熟练使用”晋升到“创造性应用”的开发者来说,这本书是必读之作。

评分

翻译好烂,读不下去了

评分

翻译和排版扣分,除去一些错误,还是挺不错的一本书,有辨识能力的话可以学到不少东西

评分

翻译的人,人品有问题,根本就没有一个技术类书籍翻译的态度,谷歌翻译的?徐涛 以后大家要注意他翻译的书!

评分

不能完全怪翻译,有些概念和用词找到对应的中文拼一块本来就不知所云...

评分

记住你了,徐涛,你翻译的书绝不能看。

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

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有