概念1、确保一类只有一个实例,并提供一个访问它的全局访问点。2、实现的方法是先判断实例是否存在,如果存在就直接返回,如果不存在就创建返回,这保证一类只有一个实例对象。作用保证某个类…
概念1、定义一系列算法,一个个封装,让它们互相替换。2、策略模式的目的是分离算法使用算法的实现。3、基于策略模式的程序至少由两部分组成。第一部分是策略类(可变),策略类包括具体算法…
现实生活中,航线上的飞机只需要与机场的塔沟通就可以确定航线和飞行状态,而不需要与所有飞机沟通。同时,塔作为中介,知道每架飞机的飞行状态,可以安排所有飞机的起降和航线。概念1、通过一…
购物需求,存在商品选择表、颜色选择表、购买数量表等,都会触发change事件,然后可以通过中介转发处理,实现各事件之间的解耦,只需要维护中介对象。使用场景1、系统中对象之间存在复杂…
在程序开发中,不希望某种类型天生庞大,一次承担很多责任,可以使用装饰者模型。装饰者的模式可以动态地给某个对象追加责任,不会影响从这个类中诞生其他对象。概念1、装饰者模式在不改变对象…
说明1、闭包是具有很多变量和这些变量的环境的表现式(通常是函数),这些变量也是该表现式的一部分。2、闭包可以将访问的变量保存在内存中,实现缓存功能。实例add()返回值为一个函数,…
说明1、Javascript语言的特殊之处在于函数内部可以直接读取全局变量。2、函数外部自然不能读取函数内的局部变量。请注意,当函数内部声明变量时,务必使用var命令,否则会声明变…
使用注意1、闭包会使函数中的变量全部存储在内存中,内存消耗很大,所以不能滥用闭包,否则会导致网页性能问题,在IE中可能会导致内存泄露。解决办法是,在退出函数之前,删除所有未使用的局…
使用说明1、JSON是JS的对象,也是数据形式。采用完全独立于语言的文本格式,是理想的数据交换格式。2、JSON是JavaScript原生格式。JSON中的两个api将JSON字符…