Model-View-Controller Architecture

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

MVC was originally developed to map the traditional input, processing, output roles into the GUI realm:

Input --> Processing --> Output

Controller --> Model --> View [Dean98]

如图示:[Trygver03]

较详细的描述:[DEA2e03]

A model represents business data and business logic or operations that govern access and modification of this business data. Often the model serves as a software approximation to real-world functionality. The model notifies views when it changes and provides the ability for the view to query the model about its state. It also provides the ability for the controller to access application functionality encapsulated by the model. A view renders the contents of a model. It accesses data from the model and specifies how that data should be presented. It updates data presentation when the model changes. A view also forwards user input to a controller. A controller defines application behavior. It dispatches user requests and selects views for presentation. It interprets user inputs and maps them into actions to be performed by the model. In a stand-alone GUI client, user inputs include button clicks and menu selections. In a Web application, they are HTTP GET and POST requests to the Web tier. A controller selects the next view to display based on the user interactions and the outcome of the model operations. An application typically has one controller for each set of related functionality. Some applications use a separate controller for each client type, because view interaction and selection often vary between client types. 如图示:

也可参见[Steve97]对MVC的定义。

Summary:

OOP中对Model的查询和对Model的状态的改变是区分开的。 Model可以在DB建模后就完成了。 Model的状态的查询、改变方法都是由Model自己提供的。Model是被动的。 对Model状态的查询由View来主动 对Model状态的改变由Controller来主动 References:

[Dean98] http://ootips.org/mvc-pattern.html [Trygver03] http://heim.ifi.uio.no/~trygver/2003/javazone-jaoo/MVC_pattern.pdf [Steve97] http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html [DEA2e03] http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch2.htm

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航