素材巴巴 > 程序开发 >

Play中的MVC理念

程序开发 2023-09-08 21:26:41

Play应用遵循了MVC模式并运用到Web架构中去。该模式将应用分为不同的层:表现层和模型层,其中表现层又可以分为视图层和控制层。

 

●模型层是关于应用操作的特定域信息表现,域逻辑对原生的数据增加了含义(比方说,计算今天是不是用户的生日,或者为购物车计算总价、税费、运费等)。大部分应用使用持久化存储机制(比如数据库)来保存数据。MVC不是特别关注数据访问层,因为这被认为是底层的工作或者被Model封装。


●视图层将模型渲染成有利于交互的形式(通常称之为用户界面UI),单个模型能够存在多个视图来用于不同的需求。在一个web应用当中,视图通常使用“web格式”来呈现信息,像HTML、XML、JSON等;但是还有一些用例中使用二进制的形式来表现,比如需要动态图表来渲染。


●控制层用来响应和处理事件(通常是用户的行为),并且有可能通过方法调用对模型作出变更。在一个web应用中,事件一般为HTTP请求:控制器监听HTTP请求,从事件中获取相关的数据,比方说查询字符串参数、请求报头等,并改变底层模型对象。

 

Play应用中的这些层都定义在app目录,每个层都处在一个独立的包中:

 

app/controllers

控制器是java类,包含了被声明为public static的Action方法。Action是当接收HTTP请求后被调用的java入口,控制器类中的java代码事实上不是面向对象的:而主要是面向过程的代码。Action方法从HTTP请求获取相关数据,读取或者更新模型对象,并且返回包装成HTTP响应的结果。

app/models

域模型对象层是受用于java语言面向对象特性的一组java类,包含了数据结构和应用对数据的相关操作。当模型对象需要持久化存储时,可能还会包含一些JPA注释或者SQL声明。

app/views

大部分视图都使用Play提供的高效模板系统生成,控制器从模型层得到想要的数据,然后应用模板修饰这些对象。该包通过含有特定指令的HTML、XML、JSON模板文件来动态渲染模型


标签:

上一篇: 从用 AngularJS 开发 PC 客户端说起 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。