1

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

我们在 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 模型样式?有什么我想念的吗?

欢迎任何建议

4

0 回答 0