职责链模式的定义是:使多个对象都有机会处理请求,从而避免请求的发送和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到一个对象处理它为止。 职责链模式的名字非常形象,一系列可能会
职责链模式的定义是:使多个对象都有机会处理请求,从而避免请求的发送和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到一个对象处理它为止。
职责链模式的名字非常形象,一系列可能会处理请求的对象被连接成一条链,请求在这些对象之间依次传递,直到遇到一个可以处理它的对象,我们把这些对象称为链中的节点。
举个例子:
老板要开发项目,找到项目经理,项目经理找到程序员,程序员要code这个项目(处理这个对象),但如果程序员太忙的话,项目经理就要自己code,或者用其它方法来处理。
//职责链模式function Boss(manager){ if(manager){ this.manager = manager; }}Boss.prototype.write = function(app){ this.manager.write(app);}function Manager(coder){ if(coder){ this.coder = coder; }}Manager.prototype.write = function(app){ if(this.coder){ this.coder.write(app); } else{ console.log(app); }}function Coder(){}Coder.prototype.write = function(app){ console.log(app);}var instance = new Boss(new Manager(new Coder()));instance.write('哈哈');