chaojidan

导航

工厂模式和混入模式

工厂模式,英文名: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中维持这种共享功能,而各种对象专注于实现系统中不同的功能,来轻松避免代码的重复。

 

 

 

 

加油!

posted on 2015-05-07 17:11  chaojidan  阅读(400)  评论(0编辑  收藏  举报