应用MVP模式改进软件架构
2012-04-29王念桥
王念桥
摘要: 模型-视图-控制器 (MVC) 模式是一个框架级的设计模式,该模式将软件设计中的关注点分离开来,从而使程序更有弹性。随着软硬件的发展,基于MVC模式演化出了一些相关模式。模型-视图-表示器 (MVP) 模式就是由MVC演变而来。文章将首先介绍了可能的MVP模式的实现方法,然后讨论了该模式的应用,以及所带来的益处。
关键词: 模式; MVC; MVP; 软件架构
中图分类号:TP302.1文献标识码:A文章编号:1006-8228(2012)04-37-02
Improving software architecture with MVP mode
Wang Nianqiao
(Wuhan technical college, department of electronic & information,Hubei, Wuhan 430074, China)
Abstract: Applying the Model-View-Controller (MVC) mode shows that designing applications with different concerns makes programs more flexible. Several variations of it appeared over the years, and one of those is the Model-View-Presenter (MVP). In this article, one possible implementation of the MVP mode, its application and its benefits will be introduced.
Key words: mode; MVC; MVP; software architecture
1 MVP 概览
MVP演变自MVC[1],通过表示器将视图与模型巧妙地分开。在该模式中,视图通常由表示器初始化,它呈现用户界面(UI)并接受用户所发出命令,但不对用户的输入作任何逻辑处理,而仅仅是将用户输入转发给表示器。通常每一个视图对应一个表示器。表示器包含大多数表示逻辑,用以处理视图,与模型交互以获取或更新数据等。模型描述了系统的处理逻辑,模型对于表示器和视图一无所知。
[View][Presenter][Model]
图1MVP 模式
MVP 中表示器通过接口(当然也可能是抽象基类)与视图交互[2,3]。采用这种方案可以使表示器自身成为一个可重用性和可测试性均很高的类。首先,表示逻辑独立于所使用的UI技术,因此,可在Windows和Web表示层中重用同一表示器。其次,针对某一接口为表示器编码,该表示器可以与实现该接口的任何对象交互,而实现该接口的可能是 Windows窗体对象、ASP.NET页面对象或者WPF窗口对象,这意味着只要视图接口不变,视图的任何更新都不会影响到表示器。再者,同一表示器可以处理同一应用程序的不同视图。……
