谁能建议一种设计模式来分离JavaScript中的业务逻辑和表示逻辑?

Can anyone suggest design pattern to separate business logic and presentation logic in JavaScript?

本文关键字:业务 JavaScript 逻辑和 表示 分离 设计模式 一种      更新时间:2023-09-26

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

ios和android的设计不同。

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

谁能建议设计模式来分离JavaScript中的业务逻辑和表示逻辑?

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

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

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

看一下backbone.js,它是一个非常棒的MVC框架,用于丰富的javascript应用。

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

Sencha Touch是我认为最好的选择。它不仅让你分离了表示和业务逻辑,而且还跨浏览器,尤其是Android、iPhone和Blackberry 6。通过使用sencha touch,您可以通过使用phonegap

轻松地将移动web应用部署到本地web应用。