javascript 设计模式

什么是设计模式

  通过比喻、倒叙、排比等写作技巧可以使文章更加生动和精彩。设计模式就是类似于这样的技巧,通过使用这些技巧可以让程序更加易懂、易改、易扩展。

 例如我们全局变量都放到一个对象中,这样就可以减少命名冲突。这是单例模式

设计模式就是我们常用的技巧的归纳。

将设计模式分类

有人将设计模式按照性质分为3类,分别是创建型、结构型、行为型。我觉的按目的分成两类更加容易理解,性能型和易用型。

性能型是为了提高程序的性能的设计模式。

易用型是为了易用使用的设计模式。

下面是javascript经常使用的设计模式:

单例模式:创建UI是比较耗性能的,我们可以只创建一个UI,以后凡是需要一样的UI,我们就一直使用这一个。像这种使用一个实例代替多个实例的技巧,就是单例模式。这是性能型。另外我们经常把类似的东西归置到一个变量下面,例如把全局变量都放到名字为global的对象中,将工具函数都放到名字为tools的对象中。这样做既可以减少命名冲突,又有分类、归纳的好处。我们也把这种技巧叫做单例模式。这是易用型。

简单工厂模式:当我们想要一个随环境变化而不同的东西时,需要先判断环境。然而当这种东西被频繁需要的时候,我们就需要频繁的判断。不如我们把这个过程封装成一个函数,每次需要这个东西的时候,就调用这个函数。由于这个函数可以产生不同的东西,我们就叫这个技巧为简单工厂模式。

桥接模式:如果是将提示信息的DOM显示出来,我们可以写一个showInfo函数,将提示信息的DOM找到,然后显示出来,但是我们也可以写一个show函数,它的作用是将传递给它的DOM显示出来,这样我们也可以使用show来显示错误信息。像这种将常用的部分和变化的部分分开,使得函数可以重用的技巧,叫做桥接模式。

适配器模式:有没有觉的,每次写document.getElementById 很麻烦,可以写一个名字叫id的函数,把document.getElementById装在里面,这样你只需要写id()就可以了,这种改变接口的技巧是适配器模式。很简单,有木有。设计模式,就是一些常用的技巧而已。

订阅发布者模式:也有人叫观察者模式。当我们遇到A执行时,B也执行这种情况时,你会怎么做?很简单,我们直接将B放到A的里面最后的位置就好了,这样A执行到尾部就会执行B。如果后来情况有变,当A发生,B和C执行。再后来,当A发生,只有C执行呢。我们可以创建一个数组,将B和C放到里面,当A执行后,就遍历这个数组,执行里面的组员。这样我们就可以通过增删数组的来实现。我们将这种方法封装起来,就是订阅发布者模式。编程中,有很多这种情况,例如事件,我们使用addEventListener和removeEventListener来向数组添加和删除成员,触发事件后遍历执行组员。这样是不是很方便。这个是易用型的。

 

 

代理模式:

外观模式:也叫门面模式。我们定义一个函数C,将A、B、C装进去。这样当我们想运行A、B、C的时候,调用一下C。这样可以保证函数较小的体积,不会使函数过于庞大。庞大的函数往往不易于阅读、修改和扩展。这个模式虽然简单,却很考验功力。适当的外观模式加上易懂的函数名,可以使代码变的“优美”。

访问者模式:

策略模式:

模板模式:

 

 

 

 

 

总结:

设计模式主要使用的手段就是分类,提取重复的部分,分层,

posted @ 2014-03-05 20:35  看远  阅读(145)  评论(0)    收藏  举报