任何人都可以建议设计模式来分离JavaScript中的业务逻辑和表示逻辑吗?

时间:2011-09-21 06:53:25

标签: javascript design-patterns mobile-website

我将开发移动网络应用程序。 应用程序将使用Web服务作为后端数据。 所有演示和业务逻辑都需要用javascript编写。

ios和android有不同的设计。

并且不想为两者分别重写业务逻辑。

任何人都可以建议使用JavaScript来分离业务逻辑和表示逻辑的设计模式。

4 个答案:

答案 0 :(得分:2)

一个好的设计模式是设计一个“REST-ful”API,用于存储,检索和修改应用程序操作的数据。然后设计共享此公共API的单独用户界面。编写代码时,使用单独的原型和函数来表示和操作原型中的数据,这些原型用于表示数据在用户界面中的外观或控制方式。

您还可以通过使用CSS在iOS和Android上控制应用程序的外观来实现可重用性,同时在两个版本的应用程序中仍然使用相同的HTML DOM结构。换句话说,您可以通过操纵DOM元素的“class”属性而不是显式修改“style”属性来获得更多的可重用性,依赖于CSS来应用基于类的样式。然后,在大多数情况下,您可以使用相同的JavaScript代码,但只是向不同的用户代理提供不同版本的CSS。可能会出现其他差异;我只是建议在它们出现时将它们重构为自己的函数。

正如其他人所指出的,有许多现有的JavaScript框架(例如Sencha Touch)已经为移动设备抽象了视图逻辑,允许您只编写模型并控制逻辑的各个部分。如果你有UI组件的抽象,那么唯一需要维护的分离是模型和控制器之间的分离。

答案 1 :(得分:1)

看一下backbone.js,它是丰富的javascript应用程序的一个极好的MVC框架。

答案 2 :(得分:0)

我正在使用Sencha Touch,因为它允许我分离iOS,Android和平板电脑。 此外,它还支持REST-ful和JSONP。

答案 3 :(得分:0)

Sencha Touch是我认为最好的选择。不仅可以让您在演示和业务逻辑之间分离,还可以跨浏览器,特别是Android,iPhone和Blackberry 6。 通过使用sencha touch,您可以通过使用phonegap轻松访问将移动Web应用程序部署到本机Web应用程序