RequireJS - 是否有任何理由在其上构建包装器?

时间:2012-10-01 19:57:15

标签: javascript requirejs

我有一个与使用RequireJs的方式有关的问题。 我们的应用程序应该在附近的功能中增长很多,因此主要问题是准备一个框架,参与项目的开发人员将遵循该框架。

我们在RequireJS上尝试了这种包装(尝试强制执行OOP方法):




        //each file will contains such a definition
            //this file should be located under: appNamespace/Client/Widget.js

            //attaching the class definition to the namespace
            with ({public : appNamespace.Client})
            {
               //using a Class defined in the file: appNamespace/DomainModel/DataTable.js
               var dt = using('appNamespace.DomainModel.DataTable');

               //Class definition
               public.Widget = function(iName)
               {
                    //private variable
                    var dSort = new dt.SortableTable();

                    this.Draw = function(iRegion)
                    {
                      //public method implementation           
                    }
               }
            }
    

或者,我们可以使用自然的RequireJS模型,如结构:

<pre><code>
//this module definition should be located in the file: appNamespace/Client/Widget.js
define('appNamespace/DomainModel/DataTable', function(dt)
{
     function Widget(iName)
     {
        //private variable
        var dSort = new dt.SortableTable();

        this.Draw = function(iRegion)
        {
            //public method implementation           
        }
     }

     return Widget;
})

我更喜欢第一个例子,因为:

    1.它将强制开发人员以更多OOP风格编写脚本
    2。它看起来像C#或Java表示法 - 因此它允许在后端代码和客户端代码之间更快地切换
      3。我真的不喜欢模型结构,因为它允许编写任何样式的代码。更多的是,仅定义您的类是不够的,您应该定义此文件公开的API - 因此您实际上可以定义与该文件包含的内容无关的API。

    那么 - 为什么我会使用第二个例子 - 自然的RequireJS模型风格? 有什么我想念的吗?

    欢迎任何建议

0 个答案:

没有答案