原帖地址:http://www.cnblogs.com/TomXu/archive/2013/06/14/3135050.html
小记
这本书的出版得益于人民邮电出版社陈冀康编辑的推荐,加上之前博客又翻译了一些原作者的文字,所以就承担了该书的翻译工作,不同于博客的是,由于设计模式本身就难以表达,所以前后进行了5次译稿校对,才得以出版,再次感谢作为专业翻译媳妇的帮忙和编辑的耐心。
本书介绍
设计模式是解决软件设计中常见问题的可复用方案。学习任何编程语言,设计模式都是一个令人兴奋和极具吸引力的话题。
本书是JavaScript编程设计模式的学习指南。全书分为14章。首先介绍了什么是模式、模式的结构、类别、模式的分类、如何编写模式等等;然后,集中介绍了很多流行的设计模式在JavaScript中的应用,包括Module(模块)模式、Observer(观察者)模式、Facade(外观)模式和Mediator(中介者)模式;最后,还探讨了模块化的JavaScript模式、jQuery及其插件中的设计模式。
本书适合专业的Web开发人员和前端工程师阅读。通过阅读本书,他们将能够提高对设计模式的认识,并学会如何将设计模式应用到JavaScript编程语言中。 购买链接,请查看右侧的图片。
章节示例
Command模式旨在将方法调用、请求或操作封装到单一对象中,从而根据我们不同的请求对客户进行参数化和传递可供执行的方法调用。此外,这种模式将调用操作的对象与知道如何实现该操作的对象解耦,并在交换出具体类(对象)方面提供更大的整体灵活性。
用基于类的编程语言解释具体类是最恰当的,它们与抽象类的思想相关。一个抽象类定义一个接口,但不一定为它所有的成员函数提供实现。它作为一个基类,派生出其他类。实现缺失功能的派生类被称为一个具体的类(见图9-7)。
图9-7 Command模式
Command模式背后的主要思想是:它为我们提供了一种分离职责的手段,这些职责包括从执行命令的任意地方发布命令以及将该职责转而委托给不同对象。
实施明智的、简单的命令对象将把action动作和调用该动作的对象绑定在一起。它们始终包括一个执行操作(如run()或execute())。所有具有相同接口的Command对象可以根据需要轻松交换,这被认为是该模式的一个更大好处。为了演示Command模式,我们将创建一个简单的汽车购买服务。
(function () {
var CarManager = {
// 请求信息
requestInfo: function (model, id) {
return "The information for " + model + " with ID " + id + " is foobar";
},
// 订购汽车
buyVehicle: function (model, id) {
return "You have successfully purchased Item " + id + ", a " + model;
},
// 组织一个view
arrangeViewing: function (model, id) {
return "You have successfully booked a viewing of " + model + " ( " +id + " ) ";
}
};
})();
看一下上面的代码,它可以通过直接访问对象轻松地调用我们的CarManager方法。我们认为这里没有任何错误,从技术上讲,它是完全有效的JavaScript。然而,它在有些情况下可能是不利的。
例如,试想如果CarManager里的核心API改变了会怎么样。这将要求程序里所有直接访问这些方法的对象都需要进行修改。这可能被视为一个耦合层,它实际上最大程度地违反了松耦合对象的OOP方法论。而我们可以通过进一步抽象API来解决这个问题。
现在让我们来扩展CarManager,这样Command模式下的应用程序会产生如下结果:接受任意可以在CarManager对象上执行的命名方法,传递可以使用的任意数据,如CarModel(模型)和ID。这是我们希望能够实现的内容:
CarManager.execute("buyVehicle", "Ford Escort", "453543");
按照这个结构,我们现在应该为CarManager.execute方法添加一个定义,如下所示:
CarManager.execute = function (name) {
return CarManager[name] && CarManager[name].apply(CarManager, [].slice.call(arguments, 1));
};
因此我们最终的示例调用看起来是这样的:
CarManager.execute("arrangeViewing", "Ferrari", "14523");
CarManager.execute("requestInfo", "Ford Mondeo", "54323");
CarManager.execute("requestInfo", "Ford Escort", "34232");
CarManager.execute("buyVehicle", "Ford Escort", "34232");
推荐读物
任何一本书都不是完美的,所以除了本书之外,如果读者需要继续深入了解JavaScript,我很乐意向您推荐以下书目。
- 《JavaScript权威指南》,作者:David Flanagan
- 《JavaScript编程精解》,作者:Marijn Haverbeke 译者(汤姆大叔)
- 《JavaScript模式》,作者:Stoyan Stefanov
- 《编写可维护的JavaScript》 ,作者:Nicholas Zakas
- 《JavaScript语言精粹》,作者:Douglas Crockford
其它
本人的另外一本作品《JavaScript启示录》也将于9月份出版,敬请期待。
本文链接
分享到:
相关推荐
JavaScript设计模式.pdf JavaScript设计模式是指在软件开发中使用JavaScript语言编写的设计模式。这些设计模式旨在提高代码的重用性、可读性、维护性和扩展性。以下是JavaScript设计模式的知识点总结: 1. 单体...
设计模式和异步编程是提升JavaScript代码质量和效率的关键。以下将详细介绍这三本书所涵盖的知识点: 1. **JavaScript设计模式**: 设计模式是软件工程中经过实践验证的、解决常见问题的有效方法。在JavaScript中...
《JavaScript设计模式》是JavaScript设计模式的学习指南。全书分为14章。首先介绍了什么是模式、模式的结构、类别、模式的分类、如何编写模式等等;然后,集中介绍了很多流行的设计模式在JavaScript中的应用,包括...
书中不仅介绍了JavaScript中经典和现代的设计模式,还包括了针对不同JavaScript开发框架(如MVC、MVP、MVVM)的设计模式,以及最新的模块化JavaScript设计模式(AMD、CommonJS、ES Harmony)和jQuery中的设计模式。...
JavaScript 设计模式概述 JavaScript 设计模式是一个非常重要的概念,在前端开发中,掌握设计模式可以提高开发效率和代码质量。本文将对 JavaScript 设计模式进行总体介绍,并对闭包、封装等重要概念进行详细讲解。...
在深入探讨《Javascript 设计模式》这本电子书之前,需要先理解设计模式的含义及其在软件开发中的重要性。设计模式是软件工程领域中经过时间验证的一套最佳实践和解决方案,它们针对特定问题提供了模板化设计方案。...
作者针对常见的开发任务,从YUI等实战代码中取材,提供了专家级的解决方案,不仅透彻剖析了JavaScript扣的面向对象编程,而且深入探讨了如何用JavaScript实现以前只在服务器端应用的设计模式,如何根据实际场景选择...
JavaScript设计模式是编程实践中一种重要的思想,它通过总结和提炼出一套可复用的解决方案,帮助开发者解决在软件开发过程中遇到的常见问题。设计模式并不是特定的语言特性,而是跨越多种编程语言的一般性原则和最佳...
包括面向对象,面向对象编程思想,javascript面向对象,设计模式通俗版,快速进入模式学习与实践。
《JavaScript设计模式》共有两部分。第一部分给出了实现具体设计模式所需要的面向对象特性的基础知识,主要包括接口、封装和信息隐藏、继承、单体模式等内容。第二部分则专注于各种具体的设计模式及其在JavaScript...
在深入探讨《JavaScript设计模式系统讲解与应用》的内容之前,我们先来了解一下设计模式的基本概念以及为什么它对于前端开发人员尤为重要。设计模式是一套被反复使用的、经过分类编目的、包含结构化的解决方案,用于...
javascript设计模式 哈梅斯 (Ross harmes) (作者), 迪亚斯 (Dustin Diaz) (作者), 谢廷晟 (译者) 整书源码
作者在写作过程中得到了许多人的帮助,特别感谢了图灵出版社的编辑、AlloyTeam团队的指导、同行的技术建议以及设计团队的贡献。同时,作者也鼓励读者在发现错误或有建议时积极反馈,共同促进知识的传播与进步。 总...
Javascript 设计模式系统讲解与应用视频资源地址.txt
JavaScript设计模式与开发实践是深入理解并提升JavaScript编程能力的关键领域。设计模式是对在软件设计中经常出现的问题的解决方案的描述,它代表了最佳实践,是经验丰富的开发者们经过时间检验后总结出来的解决常见...
在JavaScript中,设计模式的学习和应用能够帮助开发者利用这门语言的特性,编写出更加模块化、易于维护和复用的代码。 具体到JavaScript设计模式,有多种类型可以利用,包括: 1. 构造器模式:通过构造函数创建...
除了上述基础设计模式外,《JavaScript设计模式与开发实践》还介绍了更多高级的设计模式,如代理模式、命令模式、迭代器模式等,这些模式在处理复杂的前端应用或后端服务时非常有用。 ##### 1. 代理模式 代理模式为...