• 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
  • 相关阅读:
    RichEdit
    用 RAD Studio 柏林版创建 IoT 应用程序
    延时程序
    SQL if exists用法
    Firemonkey限制TEdit只能输入数字的完美方法
    leetcode 树
    leetcode string
    clone-graph
    surrounded-regions merge-intervals
    leetcode链表题
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2635519.html
Copyright © 2020-2023  润新知