最近在实习公司写代码,被隔壁的哥们吐槽说,代码写的没有一点艺术。为了让我的代码多点艺术,我就重新温故了《javascript高级程序设计》(其中几章),然后又看了《javascript设计模式》,然后觉得要写点心得体会,来整理自己所学的吧。以下是我个人见解,错了请轻喷,欢迎指出错误,乐于改正。 一、 ...
分类:
Web程序 时间:
2016-08-03 23:37:33
阅读次数:
297
状态模式的关键是区分事务内部和外部的状态,事务内部状态改变往往会带来事务的行为改变。 状态模式中有意思的一点是,一般我们谈到封装,都是优先封装对象的行为,而非对象的状态。但在状态模式中刚好相反,状态模式的关键是把事务的每种状态都封装为单独的类,跟此种状态有关的行为都封装在这个类的内部。与此同时,我们 ...
分类:
编程语言 时间:
2016-07-29 19:03:49
阅读次数:
163
一、装饰者模式定义 装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象。这种为对象动态添加职责的方式就称为装饰者模式。装饰者对象和它所装饰的对象拥有一致的接口,对于用户来说是透明的。 和java等语言不同的是,java的装饰器模式是给对象动态添加职责,javascr ...
分类:
编程语言 时间:
2016-07-28 16:37:55
阅读次数:
422
今天,我拿到了张容铭写的这本《JavaScript设计模式》这本书,开始了关于JavaScript更深一点的学习。 看到这本书开始的时候,虽然之前通过看书、一些比较好的视频的讲解,对JavaScript有了基础的认识,但是,在看到书的内容的时候,我内心还是有一种自己差的十万八千里的感觉,之前的代码写 ...
分类:
编程语言 时间:
2016-07-20 19:14:06
阅读次数:
211
一、中介者模式的定义和应用场景 中介者模式的作用在于解除对象之间的紧耦合关系,增加一个中介者之后,所有对象都通过中介者来通信,而不是互相引用,当一个对象发生变化的时候,仅需要通知中介者即可。从而将网状的多对多关系转换为了简单的一对多关系。 二、 ...
分类:
编程语言 时间:
2016-07-14 19:09:28
阅读次数:
146
一、享元模式的定义及使用场景 享元模式是一种用于性能优化的模式,如果系统中因为创建了大量类似对象而导致内存占用过高,享元模式就非常有用了。享元模式的核心是运用共享技术来有效支持大量细粒度的对象。 享元模式的关键是区分内部状态和外部状态,剥离了外部状态的对象成为共享对象,外部状态在必要时被传入共享对象 ...
分类:
编程语言 时间:
2016-07-11 18:42:07
阅读次数:
114
一、组合模式定义及使用场景 组合模式将对象组合成树形结构,用以表示“部分—整体”的层次结构,除了用来表示树形结构之外,组合模式还可以利用对象的多态性表现,使得用户对单个对象和组合对象的使用具有一致性。 实现组合模式的关键: 在java等静态语言中,需要单个对象和组合对象都实现同样的抽象接口,这可以通 ...
分类:
编程语言 时间:
2016-07-10 23:13:21
阅读次数:
234
一、发布订阅模式定义 发布订阅模式又叫做观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。发布—订阅模式可以取消对象之间硬编码的通知机制。javascript中的事件机制就属于发布订阅模式的一种。 二、发布订阅模式使用案例 2.1网站登录 假 ...
分类:
编程语言 时间:
2016-07-06 18:05:57
阅读次数:
133
一、迭代器模式定义 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,并且不需要暴露该对象的内部表示。 在当前大部分语言中,都已经内置了迭代器模式。迭代器有内部迭代器和外部迭代器之分,一般现有语言中实现的大多是内部迭代器。 二、jquery中的each实现 三、一个外部迭代器实现 ...
分类:
编程语言 时间:
2016-07-04 23:33:36
阅读次数:
212
一、代理模式定义 代理模式的关键是:当客户不方便直接访问一个对象或者不满足需要的时候,提供一个替身对象来控制对这个对象的访问。代理模式需要和本体对外提供相同的接口,对用户来说是透明的。代理模式的种类有很多,诸如防火墙代理,保护代理(帮助过滤掉一些请求,控制不同权限的对象对目标对象的访问),虚拟代理( ...
分类:
编程语言 时间:
2016-07-04 22:17:41
阅读次数:
247