赞
踩
近年来,MVC模式也被视为一种方式,来管理日益丰富而复杂的客户端Web开发,Angular就是在这种环境中诞生的。
应用MVC模式的关键是实现关注点分离的关键前提,即应用程序中的数据模型与业务模型和表现逻辑分离。在客户端Web开发中,这意味着分离数据、操作该数据的逻辑以及用于显示数据的HTML元素。结果是客户端应用程序更容易开发、维护和测试。
三个主要构建模块是模型、控制器和视图。下图显示了MVC模式在应用于服务器端开发时的传统阐述。模型一般是从数据库中获得的,而应用程序的目标是为来自浏览器的HTTP请求提供服务。
Angular存在于浏览器中,这造成MVC的变化,区别于服务器端的实现,如下图:
MVC模式的客户端实现通常是通过Restful Web服务,从服务器端组件中获取数据。控制器和视图的目标是对模型中的数据进行操作,以执行DOM操作,从而创建和管理用户可以与之交互的HTML元素。这些交互操作会反馈给控制器,闭环循环,以形成交互式应用程序。
Angular对其构建使用的术语略有不同,这意味着使用Angular实现的MVC模型如下图所示:
模型包含用户使用的数据。模型有两大类型:视图模型和域模型,视图模型只表示从组件传递到模板的数据;域模型包含业务领域的数据,还包括操作、存储和处理这些数据的规则,统称为模型逻辑。
在使用MVC模式构建的应用程序中,模型应该:
模型不应该:
确保模型与控制器和视图隔离的好处是,可以更容易地测试逻辑,增强和维护整个应用程序也更加简单、容易。
最好的域模型包含用于获取和持久存储数据的逻辑,以及用于创建、读取、更新和删除操作(CURD)逻辑,或者用于查询和修改数据的单独模型,称为命令和查询责任隔离。
这可能意味着模型直接包含逻辑,但更常见的情况是,模型包含的逻辑会调用Restful Web服务,以调用服务器端的数据库操作。
控制器是Angular Web应用程序中的结缔组织,充当数据模型和视图之间的管道。组件添加了表示模型的某些方面,并对其执行操作所需的业务域逻辑。遵循MVC模式的组件应该:
组件不应该:
域模型并不是Angular应用程序中的唯一数据。组件可以创建视图数据(也称为视图模型数据或视图模型),来简化模板及其组件的交互。
视图(Angular中称为模板)是使用通过数据绑定增强的HTML元素定义的。正是数据绑定使Angular如此灵活,它们将HTML元素转换为动态Web应用程序的基础。模板应该:
模板不应该:
模板可以包含逻辑,但它应该是很简单的,应节约使用。
最常见的问题是将逻辑放入错误的组件中,从而破坏MVC关注分离点。以下是这个问题最常见的三种类型:
这些都是棘手的问题,因为它们需要一段时间才能表现为问题。应用程序仍然在运行,但是随着时间的推移,它将变得更难增强和维护。
在Angular开发中获得更多经验后,确定把逻辑放在哪里应该成为第二天性,这3条规则值得遵守:
如果在开发过程中记住这些,就可以避免最常见的问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。