我有一个与使用 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 模型样式?有什么我想念的吗?
欢迎任何建议