接口和Class一样,JavaScript也没有对接口的原生支持.下面是书中三种实现接口的方式:提示实际环境中我们会对书中的方案进行取舍注释注释法用文档来约束代码,不是强制约束,只能靠开发人员自觉维护.优点是不用额外代码支持,不会增大文件大小,不会影响执行速度.缺点是无法提供检查,错误信息.# in...
分类:
编程语言 时间:
2015-02-21 14:18:30
阅读次数:
188
富有表现力的JavaScript目录语言的命门弱类型语言函数是一等对象对象的易变性JavaScript中的设计模式语言的命门命门这个词也许并不恰当,但是每种编程语言或者每个事物都有一些最基础的东西,这些基础的东西不明白,即使你写了多年的代码,仍然会迷迷糊糊,比如前段时间我在写Processing程序...
分类:
编程语言 时间:
2015-02-21 14:16:30
阅读次数:
204
在《javascript设计模式》中,作者并没有向我们介绍策略模式,然而它却是一种在开发中十分常见的设计模式。最常见的就是当我们遇到一个复杂的表单验证的时候,常常需要编写一大段的if和else逻辑代码,这些代码维护起来非常麻烦,但是麻烦的事情远远不止于此。通常一个项目中不止涉及单个的表单或者数据的认...
分类:
其他好文 时间:
2015-02-09 18:05:05
阅读次数:
135
《parctical common lisp》的作者曾说,如果你需要一种模式,那一定是哪里出了问题。他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案。 不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面....
分类:
编程语言 时间:
2015-02-05 11:11:05
阅读次数:
292
享元模式采用一个共享来有效的支持大量细小粒度的对象,避免大量有相同内容的类的开销(如内存耗费),共享一个元类。应用场景:页面存在大量的资源密集型对象;他们具备一些共性,可以分离出公共操作的数据。一个例子,汽车登记: var Car = function(make,model,year,owne...
分类:
编程语言 时间:
2015-01-26 20:58:07
阅读次数:
342
观察者模式定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。例子:杂志订阅发布者包含一些方法:var publisher = { subscribers:function(fn,type){ ...
分类:
编程语言 时间:
2015-01-26 20:53:13
阅读次数:
213
介绍观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。使用观察者模式的好处:支持简单的广播通信,自动通知所有已经订阅过的对象。页面载入后目...
分类:
编程语言 时间:
2015-01-23 15:55:56
阅读次数:
191
适配器模式的主要作用是将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些对象(类)可以一起工作。UML示意图:例如,鸭子有fly方法和quack(嘎嘎叫)方法,火鸡也有fly方法和gobble(咯咯叫)方法,如果希望火鸡有quack方法,可以复用鸭子的,...
分类:
编程语言 时间:
2015-01-22 19:59:53
阅读次数:
290
桥接模式(将抽象与其实现隔离开来,以便二者独立变化)function sendInfo(element){ var id=element.id; ajax("GET","info.json?id="+id,function(result){ //... }); ...
分类:
编程语言 时间:
2015-01-20 23:50:06
阅读次数:
264
也可译为门面模式。它为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。引入外观角色之后,使用者只需要直接与外观角色交互,使用者与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦合度。 比如在家要看电影,需要打开音响,再打开投影....
分类:
编程语言 时间:
2015-01-20 20:22:46
阅读次数:
160