首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

【Titanium】经过回调和事件来降低耦合度

2012-07-27 
【Titanium】通过回调和事件来降低耦合度【官方地址】https://wiki.appcelerator.org/display/guides/Callback

【Titanium】通过回调和事件来降低耦合度
【官方地址】https://wiki.appcelerator.org/display/guides/Callbacks+and+Events+for+Loose+Coupling

我们在阅读了Appcelerator wiki中的“JavaScript最佳实践”之后都应该知道,使用全局变量或者破坏全局命名空间是编写高质量,可维护代码的禁忌。然而我们也知道旧的习惯是很难改的,我们在写代码时需要“this”来设值?只能创建一个全局变量来使用了。

通过这种方法解决问题最终他还会为我们带来麻烦。我们暂时忘记全局变量,将会有另外一种方法来得到同样的信息。

这里需要我们写在黄色便签上,让我们重视的有三点:
1、我们将要编写的是模块化代码(至少从现在开始)
2、基于事件的编程是很好的
3、只有在不得已的时候再使用全局变量

获取地理信息
这里,首先问题是什么?获取用户的当前地理位置信息。

这个处理会被异步执行,我们要更新的UI控件在另外一个文件中,当然,这是一个模块话的代码。

我们都知道通过调用API Titanium.Geolocation.getCurrentPosition使用回调函数来让我们知道什么时候它找到了地理位置信息。

// private varsvar mainWindow, callback_label_coords;var styles = require('styles');var maps = require('lib/maps');/** * @param {Object} args  properties for the window */exports.AppWindow = function(args) {    var instance, event_label, callback_label;    // create window    instance = Ti.UI.createWindow(args);    // make callback label    callback_label = Ti.UI.createLabel(styles.callback_label);    instance.add(callback_label);    callback_label_coords = Ti.UI.createLabel(styles.coords_label);    instance.add(callback_label_coords);    // make event listener label    event_label = Ti.UI.createLabel(styles.event_label);    instance.add(event_label);    event_label_coords = Ti.UI.createLabel(styles.coords_label);    instance.add(event_label_coords);    // create event Listener    Ti.App.addEventListener('location.updated', function(_coords) {        event_label_coords.text = String.format("longitude: %s\n latitude: %s ", _coords.longitude + "", _coords.latitude + "");    });    // do the callback to get current location    maps.currentLocation(gpsCallback);        // save the window    mainWindow = instance;    return instance;};/** * @param {Object} _coords lat, lon values from locationo */function gpsCallback(_coords) {    callback_label_coords.text = String.format("longitude: %s\n latitude: %s ", _coords.longitude + "", _coords.latitude + "");}


总结
使用回调和事件对你的代码是有益的。它减少耦合,更好的分离业务逻辑和表现层。从现在开始,我们将在应用开发中更加强化模块化代码,这将放映在不久以后我们带给你所有的内容之中。
Keep coding strong!

代码
CallbacksAreYourFriend on Github

热点排行