Play 框架的 MVC 应用程序模型


Play框架完全遵循MVC模式,MVC模式把应用程序分成几个独立的层:presentation表现层和model模型层,表现层进一步分成view呈现层和controller控制层。

  • Model 层是应用程序操作的特定领域展现的信息。领域逻辑把“领域的意思”添加到原始数据里。许多应用程序使用持久存储机制,比如数据库来存储数据。MVC不特别指明数据访问层,因为mvc模型能够理解底层操作,或数据访问层已经被模型进行了封装。
  • View 层把model层渲染到一个适当的交互窗体,如典型的用户接口。 一个model可以有多个views,以实现不同的作用。在一个web应用程序里,view通用渲染成web格式的内容,比如HTML, XML或JSON。然而,在某些情况下,view也可表示成二进制窗体,比如一个动态渲染的图表。
  • Controller 负责响应事件 (通常是用户actions),并对这些事件进行处理,也可能是调用model的修改方法。在一个Web应用程序里,事件特指http请求:一个专门用于监听http请求的控制器,它从’事件’里提取相关数据,比如查询字符串参数,请求headers„ 并把修改结果更新到底层model对象。

在Play应用程序里,这三个层被分别定义到app目录下的三个java包里。

app/controllers

控制器就是一个java类,其中的每个public/static方法都是一个Action。一个action就是一个java入口点,当接收到一个http请求时,这个action就会被调用。控制器类里的java代码并不真正的面向对象的。Action方法从http请求中提取相关的数据,读取或更新model对象,并向http请求者返回一个封装好的response结果。

app/models

领域模型对象层(以下简称model)是一系列完全使用java面向对象语言特征的java类,它包含了数据结构和数据操作。无论何时,model对象都需要存储到持久化存储设备里,一般情况下他们或许还包含有一些jpa注释和sql语句。

app/views

通过使用play提供的高效模板系统,可以生成大多数应用程序的views。控制器从model层获得某些感兴趣的数据,然后把这些数据应用到一个模板,并且通过模板把这些数据装饰得非常漂亮。这个包由HTML, XML, JSON或其他特定用于动态生成model展现的模板文件组成。

来源:http://www.biliyu.com/play-framework-handbook


前一篇:
后一篇:

评论

codeSlayer 03月07日 09:33  回复

很清晰啊

发表评论