我是 appcelerators Titan 和 javascript 的新手,我对编写 iphone 应用程序很感兴趣。我认识到创建 UI 需要“许多”代码。到目前为止这没有问题,但我倾向于明智地将该代码与我的应用程序逻辑分开。最佳做法是什么?
[更新] tweetanium是一个很好的例子,如何构建一个钛移动应用程序
我是 appcelerators Titan 和 javascript 的新手,我对编写 iphone 应用程序很感兴趣。我认识到创建 UI 需要“许多”代码。到目前为止这没有问题,但我倾向于明智地将该代码与我的应用程序逻辑分开。最佳做法是什么?
[更新] tweetanium是一个很好的例子,如何构建一个钛移动应用程序
好的,我刚刚找到了一个很酷的做法。
我将 con_file.js 与应用程序逻辑包含在 view_file.js 中
Titanium.include('../controller/con_file.js');
现在我可以访问洞数据结构了。
我会试一试:
我倾向于使用mvc 模式来开发我的应用程序,因为在一个 js 文件中实现所有东西非常难看。所以我决定使用一个文件用于视图和所有与外观有关的东西,一个文件用于数据库处理(控制器),特别是 sql 语句,以及一个用于抽象数据类型的文件(模型)。
一个简短的例子:
视图: viewConcerningObject.js
Ti.include('object.js');
var win = Ti.UI.currentWindow;
var myObject = new object();
var myObjectName = Ti.UI.createLabel({
text:myObject.getName();
});
win.add(myObjectName);
模型: object.js
Ti.include('controllerConceringObject.js');
function object(){
this.name = 'myInitialName';
this.getName(){
return this.name;
};
this.setName(newName){
this.name = newName;
};
this.updateNameFromDb(){
this.name = getNameFromDatabase();
};
}
控制器: controllerConcerningObject.js
function getNameFromDataBase(){
var db = Ti.Database('objects');
var sql = 'SELECT name FROM objects';
var recordset = db.execute(sql);
var name = recordset.field(0);
recordset.close();
db.close();
return name;
};
所以文件夹结构可能是这样的:
myProject:文件夹视图(viewConcerningObject.js),文件夹模型(Database.db,object.js),文件夹控制器(controllerConcerningObject.js)。