工厂模式,英文名:Factory。
基本概念:工厂模式提供一个通用的接口来创建对象,但是我们可以指定我们希望创建出来的对象类型。
实际应用:我们需要一个创建UI组件对象的工厂模式。我们需要什么样的组件类型(按钮,下拉框等),我们只要告诉Factory,然后它就会根据我们需要的类型创建一个相应的UI组件对象,然后返回给我们。
混入模式,英文名:Mixin。
基本概念:Mixin是可以轻松被一个子类继承功能的类,目的是复用Mixin类的方法和属性。
举个例子:
var myMixin = { moveUp:function(){}, stop:function(){} }; function carAnimator(){ this.moveLeft = function(){} } _.extend(carAnimator.prototype, myMixin); //_代表underscore.js var myAnimator = new carAnimator(); myAnimator.moveUp();
上面的代码意思:我们以拷贝的形式,把myMixin对象的方法复制给了carAnimator原型对象,以至于carAnimator实例对象也可以调用myMixin对象的方法。myMixin对象的方法以复制的混入到了carAnimator原型对象中。
上面的代码中,如果myMixin是构造函数,moveUp和stop方法在myMixin的原型对象中,那么,我们只要把myMixin的原型对象中的方法复制给carAnimator.prototype就行了。
Mixin有助于减少系统中的重复功能以及增加函数复用。当一个应用程序可能需要在各种对象实例中共享行为时,我们可以通过在Mixin中维持这种共享功能,而各种对象专注于实现系统中不同的功能,来轻松避免代码的重复。
加油!