设计模式探究系列之Interface
1、接口的定义:
?
/* * 接口的实现 * @param {function} ImplementsClass 待实现的类 * @param {Object} Interface1 被实现的Interface,Interface的实例 * @example var cAction = function(){}, aAction = new Interface('aAction',['getA','setA']); implemets(cAction,aAction);*/var implemets = function(ImplementsClass,Interface1,Interface2){if(arguments.length < 2){throw new Error("至少两个参数,而当前的参数个数:"+arguments.length);}if(typeof arguments[0] !== "function"){throw new Error("实现类的类型必须是function类型");}var i,len = arguments.length;for(i=1;i<len;i++){var interfaceA = arguments[i];if(interfaceA.constructor !== Interface){throw new Error(interfaceA+"不是Interface的实例,不是接口");}var j,methodLen = interfaceA.methods.length;for(j=0;j<methodLen;j++){var method = interfaceA.methods[j];if(!arguments[0].prototype[method]){arguments[0].prototype[method] = function(){};}}}};??