设计模式在JavaScript中的应用

回到首页

DXY Tech&Product Division


设计模式

关于设计模式,文诌诌的描述定义我就不说了,大家问下度娘即可。

设计模式在JavaScript中的应用


本文用大白话的形式描述下个人理解。首先“设计模式”翻译下就是在设计程序业务流的套路,这种“套路”都是前车之鉴,被历史反复实践和总结,所以还是值得学习了解的,毕竟每个程序员的代码不仅仅是让机器解释,而是给他人阅读的(让每个同行都能看的懂并能维护你的代码)!以下是以本人理解的设计模式在Javascript中应用描述:

1.单例模式

类中操作一个实例

function c1(){};
function A(){
    if(!this.instance){
       this.instance = new c1();
    }
    return this.instance
}

var a=A("hello");
var b=A("world");

2.策略模式

使用分支判断

function B(name){
if(!name=="hello"){
    return "a";
}
if(!name=="world"){
    return "b";
}
}

B("hello");
B("world");

3.代理模式

你调用的方法可能只是一个中间件

var c={f1:function(){

}}

va d={f2:function(){
    c.f1();
}}

d();

4.迭代器模式

循环遍历!for , while …

5.发布/订阅模式

DOM事件 or 自定义事件

6.命令模式

将要执行的【方法】和【参数对象】一并传入到另一个方法中

var e=function(fn,arg){
    fn(arg);
}
e(function(e){
    alert(e);
},"hello")

其它:组合模式,模版方法模式,享元模式,职责链模式,中介者模式,装饰者模式,状态模式,适配器模式…


结语

设计模式就好比《三十六计》,不了解也能编码,只是编码后表述起来方便、专业些。仔细的人可能会发觉当设计一套语言或框架、类库时,设计模式都是理论基础!

Q:经常有人问为什么要用这种设计模式编码? A:条条大道通罗马,只要编码有规律可循,且能解决需求就可以了。

作者 @uojo 2016年04月04日

分类

TOP