【内容】
基本信息















书名:



JavaScript设计模式与开发实践










作者:



曾探




开本:














*:



59





页数:















现价:



见顶部



出版时间



2015-05-01










书号:



9787115388889



印刷时间:














出版社:



人民邮电出版社



版次:














商品类型:



正版图书



印次:

















内容提要









作者简介









曾探

2007年毕业于吉林大学软件学院。就职于国内知名前端团队腾讯AlloyTeam,高级工程师。

曾参与Web QQ、QQ群、Q+开发者网站、微云、QQ兴趣部落等大型前端项目的开发。有过Java、Python和JavaScript的开发经验,业余作品有HTML5版街头霸王等。

平时喜欢电影和音乐,业余时间也是一名健身教练。








精彩导读









《设计模式》一书自1995年成书一来,一直是程序员谈论的“高端”话题之一。许多程序员从设计模式中学到了设计软件的灵感,或者找到了问题的解决方案。在社区中,既有人对模式无比崇拜,也有人对模式充满误解。有些程序员把设计模式视为圣经,唯模式至上;有些人却认为设计模式只在C++或者Java中有用武之地,JavaScript这种动态语言根本就没有设计模式一说。

那么,在进入设计模式的学习之前,我们最好还是从模式的起源说起,分别听听这些不同的声音。

设计模式并非是软件开发的专业术语。实际上,“模式”最早诞生于建筑学。20世纪70年代,哈佛大学建筑学博士Christopher Alexander和他的研究团队花了约20年的时间,研究了为解决同一个问题而设计出的不同建筑结构,从中发现了那些高质量设计中的相似性,并且用“模式”来指代这种相似性。

受Christopher Alexander工作的启发,Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides四人(人称Gang Of Four ,GoF)把这种“模式”观点应用于面向对象的软件设计中,并且总结了23种常见的软件开发设计模式,录入《设计模式:可复用面向对象软件的基础》一书。

设计模式的定义是:在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。

通俗一点说,设计模式是在某种场合下对某个问题的一种解决方案。如果再通俗一点说,设计模式就是给面向对象软件开发中的一些好的设计取个名字。

GoF成员之一 John Vlissides在他的另一本关于设计模式的著作《设计模式沉思录》中写过这样一段话:

设想有一个电子爱好者,虽然他没有经过正规的培训,但是却日积月累地设计并制造出许多有用的电子设备:业余无线电、盖革计数器、报警器等。有一天这个爱好者决定重新回到学校去攻读电子学学位,来让自己的才能得到真实的认可。随着课程的展开,这个爱好者突然发现课程内容都似曾相识。似曾相识的并不是术语或者表述的方式,而是背后的概念。这个爱好者不断学到一些名称和原理,虽然这些名称和原理原来他不知道,但事实上他多年来一直都在使用。整个过程只不过是一个接一个的顿悟。

……








目录














第一部分基础知识
 第1章 面向对象的JavaScript

1.1动态类型语言和鸭子类型

1.2多态

1.3封装

1.4原型模式和基于原型继承的JavaScript对象系统
 第2章 this、call和apply

2.1this

2.2call和apply
 第3章 闭包和高阶函数

3.1闭包

3.2高阶函数

3.3小结
第二部分设计模式
 第4章 单例模式

4.1实现单例模式

4.2透明的单例模式

4.3用代理实现单例模式

4.4JavaScript中的单例模式

4.5惰性单例

4.6通用的惰性单例

4.7小结
 第5章 策略模式

5.1使用策略模式计算奖金

5.2JavaScript版本的策略模式

5.3多态在策略模式中的体现

5.4使用策略模式实现缓动动画

5.5更广义的“算法”

5.6表单校验

5.7策略模式的优缺点

5.8一等函数对象与策略模式

5.9小结
 第6章 代理模式

6.1第一个例子——小明追MM的故事

6.2保护代理和虚拟代理

6.3虚拟代理实现图片预加载

6.4代理的意义

6.5代理和本体接口的一致性

6.6虚拟代理合并HTTP请求

6.7虚拟代理在惰性加载中的应用

6.8缓存代理

6.9用高阶函数动态创建代理

6.10其他代理模式

6.11小结
 第7章 迭代器模式

7.1jQuery中的迭代器

7.2实现自己的迭代器

7.3内部迭代器和外部迭代器

7.4迭代类数组对象和字面量对象

7.5倒序迭代器

7.6中止迭代器

7.7迭代器模式的应用举例

7.8小结
 第8章 发布—订阅模式

8.1现实中的发布—订阅模式

8.2发布—订阅模式的作用

8.3DOM事件

8.4自定义事件

8.5发布—订阅模式的通用实现

8.6取消订阅的事件

8.7真实的例子——网站登录

8.8全局的发布—订阅对象

8.9模块间通信

8.10必须先订阅再发布吗

8.11全局事件的命名冲突

8.12JavaScript实现发布—订阅模式的便利性

8.13小结
 第9章 命令模式

9.1命令模式的用途

9.2命令模式的例子——菜单程序

9.3JavaScript中的命令模式

9.4撤销命令

9.5撤消和重做

9.6命令队列

9.7宏命令

9.8智能命令与傻瓜命令

9.9小结
 第10章 组合模式

10.1回顾宏命令

10.2组合模式的用途

10.3请求在树中传递的过程

10.4更强大的宏命令

10.5抽象类在组合模式中的作用

10.6透明性带来的安全问题

10.7组合模式的例子——扫描文件夹

10.8一些值得注意的地方

10.9引用父对象

10.10何时使用组合模式

10.11小结
 第11章 模板方法模式

11.1模板方法模式的定义和组成

11.2第一个例子——CoffeeorTea

11.3抽象类

11.4模板方法模式的使用场景

11.5钩子方法

11.6好莱坞原则

11.7真的需要“继承”吗

11.8小结
 第12章 享元模式

12.1初识享元模式

12.2内部状态与外部状态

12.3享元模式的通用结构

12.4文件上传的例子

12.5享元模式的适用性

12.6再谈内部状态和外部状态

12.7对象池

12.8小结
 第13章 职责链模式

13.1现实中的职责链模式

13.2实际开发中的职责链模式

13.3用职责链模式重构代码

13.4灵活可拆分的职责链节点

13.5异步的职责链

13.6职责链模式的优缺点

13.7用AOP实现职责链

13.8用职责链模式获取文件上传对象

13.9小结
 第14章 中介者模式

14.1现实中的中介者

14.2中介者模式的例子——泡泡堂游戏

14.3中介者模式的例子——购买商品

14.4小结
 第15章 装饰者模式

15.1模拟传统面向对象语言的装饰者模式

15.2装饰者也是包装器

15.3回到JavaScript的装饰者

15.4装饰函数

15.5用AOP装饰函数

15.6AOP的应用实例

15.7装饰者模式和代理模式

15.8小结
 第16章 状态模式

16.1初识状态模式

16.2状态模式的定义

16.3状态模式的通用结构

16.4缺少抽象类的变通方式

16.5另一个状态模式示例——文件上传

16.6状态模式的优缺点

16.7状态模式中的性能优化点

16.8状态模式和策略模式的关系

16.9JavaScript版本的状态机

16.10表驱动的有限状态机

16.11实际项目中的其他状态机

16.12小结
 第17章 适配器模式

17.1现实中的适配器

17.2适配器模式的应用

17.3小结
第三部分设计原则和编程技巧
 第18章 单一职责原则

18.1设计模式中的SRP原则

18.2何时应该分离职责

18.3违反SRP原则

18.4SRP原则的优缺点
 第19章 最少知识原则

19.1减少对象之间的联系

19.2设计模式中的LKP原则

19.3封装在LKP原则中的体现
 第20章 开放-封闭原则

20.1扩展window.onload函数

20.2开放和封闭

20.3用对象的多态性消除条件分支

20.4找出变化的地方

20.5设计模式中的开放—封闭原则

20.6开放—封闭原则的相对性

20.7接受第一次愚弄
 第21章 接口和面向接口编程

21.1回到Java的抽象类

21.2interface

21.3JavaScript语言是否需要抽象类和interface

21.4用鸭子类型进行接口检查

21.5用TypeScript编写基于interface的命令模式
 第22章 代码重构

22.1提炼函数

22.2合并重复的条件片段

22.3把条件分支语句提炼成函数

22.4合理使用循环

22.5提前让函数退出代替嵌套条件分支

22.6传递对象参数代替过长的参数列表

22.7尽量减少参数数量

22.8少用三目运算符

22.9合理使用链式调用

22.10分解大型类

22.11用return退出多重循环
参考文献
















七天无理由退货服务
【目录】
本店全部为正版图书
返回顶部