Professional Documents
Culture Documents
Agenda
Context Problem Solution What is MVC? MVC Architecture Common MVC Implementation MVC Interaction Order MVC Pattern MVC Responsibilities Advantages of MVC Implementation of MVC
CONTEXT
PROBLEM DEFINITION
User interfaces are especially prone to change requests. Different user place conflicting requirements on the user interface. Building a system with the required flexibility is expensive and error-prone if the user interface is tightly interwoven with the functional core.
PROBLEM DEFINITION
The following forces influence the solution
The same information is presented differently in different windows, for example, in a bar or pie chart. The display and behavior of the application must reflect data manipulations immediately. Changes to the user interface should be easy, and even possible at run-time. Support different look and feel standards or porting the user interface should not affect code in the core of the application.
SOLUTION
MVC Model View Controller
What is MVC?
MVC - Model-View-Controller - is a design pattern for the architecture of web applications. It is a widely adopted pattern, across many languages and implementation frameworks, whose purpose is to achieve a clean separation between three components of most any web application.
MVC Architecture
The Model represents the structure of the data in the application, as well as application-specific operations on those data. The View renders the contents of a model. It specifies exactly how the model data should be presented. The Controller translates user actions (mouse motions, keystrokes, words spoken, etc.) and user input into application function calls on the model, and selects the appropriate View based on user preferences and Model state.
Cond
The MVC architecture divides an application (code) required to manage a user interface into three parts:
Data components maintain the raw application data and application logic for the interface model. Presentation components provide the visual representation(s) of the data --view (usually to the screen). Input-processing components handle input from the user by modifying the model--controller.
MVC Actions
Model
View
5 3 1
Model
2
Controller
Fixed interface enable both model & GUIs to be easily pulled out and
replaced Examples:-
Text documents
Spreadsheets Web browser Video games
When model is updated, all its views are informed & given chance to update themselves.
model responsibilities
store data in properties implement application methods (e.g., ClockModel.setTime() or ClockModel.stop()) provide methods to register/unregister views notify views of state changes
view responsibilities create interface update interface when model changes forward input to controller controller responsibilities translate user input into changes in the model if change is purely cosmetic, update view
Advantages of MVC
Separating Model from View (that is, separating data representation from presentation). More robust Easier to maintain permits run-time selection of appropriate Views based on workflow, user preferences, or Model state.
Easy to add multiple data presentations for the same data. Multi-view applications (overview+detail, brushing,) Different users Different UI platforms (mobile, client-side, server-side,) Alternate designs
GUI
Model
GUI
Model GUI
Cond
Facilitates adding new types of data presentation as technology develops. Model and View components can vary independently enhancing maintainability ,extensibility, and testability. allows user interfaces (views) to be easily added, removed, or changed
COND
changes can happen dynamically at runtime
promotes code reuse (e.g., one view might be used with different models)
allows multiple developers to simultaneously update the interface, logic, or input of an application without affecting other source code.
Implementation of MVC