newland.js的Ioc实现
concat( files ), function (){
//取得放在前面的拦截器
var intercepters = [].splice.call(arguments, 0, inter.length);
//取得放在后面的控制器
var controllers = arguments;
//进行控制反转,构建我们所需要的控制器子类与它的实例
files.forEach( function (el, i){
//mac下的路径为 app/controllers/doc_controller.js
//window下的路径为 app\\controllers\\doc_controller.js
var match = el.replace(/\\/g, "/" ).match(rcname);
var controller = controllers[i];
controller.inherit = $.base_controller
var klass = $.factory(controller);
$.controllers[ match[1] ] = new klass;
});
resource_ready( intercepters )
});
});
需要说明一下的是,newland.js分成两大块,app目录下的模块是用户自建的文件或系统指令下建立的模块(下称app模块),system目录下的模块则是辅助app模块运行用的。需要用户动手的app模块越简单就越好!任何复杂的类最好不要用,就算用都交由框架去处理,去new 实例;任何复杂的功能都做用钩子的形式,或通俗地说,是回调函数的形式,交由框架去调度;所有不确定的功能都做成自定义事件形式,由框架或框架的另外加载的模块去fire。诸如此类,所有耦合就松绑了,得以最大限度地适应需求的变化。
标签: javascript
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于newland.js的Ioc实现的详细内容...