设计模式
关于设计模式,文诌诌的描述定义我就不说了,大家问下度娘即可。
设计模式在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日