فصل المنطق ووزارة المستخدم في التيتانيوم (جافا سكريبت)
-
01-10-2019 - |
سؤال
أنا جديد على AppCelerators Titanium و JavaScript وأنا مهتم بترميز تطبيق iPhone. أدركت أن هناك حاجة إلى رمز "كثير" لإنشاء واجهة المستخدم. هذه ليست مشكلة حتى الآن ، لكنني أميل إلى فصل هذا الرمز عن منطق التطبيق الخاص بي بحكمة. ما هي أفضل الممارسات؟
تحديث Tweetanium هو مثال رائع على كيفية تنظيم تطبيق المحمول التيتانيوم
المحلول
حسنًا ، لقد وجدت مجرد ممارسة رائعة.
أقوم بتضمين con_file.js مع منطق التطبيق The View_file.js
Titanium.include('../controller/con_file.js');
الآن أنا قادر على الوصول إلى بنية بيانات الثقب.
نصائح أخرى
سأحاول:
أنا أميل إلى استخدام MVC-PITERN لتطبيق طلبي لأن تطبيق جميع الأشياء في ملف 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();
};
}
مراقب: ControlerConcerningObject.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: FolderView (ViewConcerNingObject.js) ، FolderModel (thedatabase.db ، object.js) ، FolderController (ControlerConcerNingObject.js).