Model–View–Controller (MVC) is a
type of computer user interface that
separates the representation of information from the user's interaction with
it. The model consists of application data and business rules, and the controller
mediates input, converting it to commands for the model or view. A view
can be any output representation of data, such as a chart or a diagram.
Multiple views of the same data are possible, such as a pie chart for
management and a tabular view for accountants. The central idea behind MVC is
code reusability and separation of concerns.
The main aim of the MVC architecture is to separate the
business logic and application data from the presentation data to the user.
Here are the reasons why we should
use the MVC design pattern.
- They are resuable : When the problems recurs, there is no need to invent a new solution, we just have to follow the pattern and adapt it as necessary.
- They are expressive: By using the MVC design pattern our application becomes more expressive.
1). Model: The model
object knows about all the data that need to be displayed. It is model who is
aware about all the operations that can be applied to transform that object. It
only represents the data of an application. The model represents enterprise
data and the business rules that govern access to and updates of this data.
Model is not aware about the presentation data and how that data will be
displayed to the browser.
2). View : The view
represents the presentation of the application. The view object refers to the
model. It uses the query methods of the model to obtain the contents and
renders it. The view is not dependent on the application logic. It remains same
if there is any modification in the business logic. In other words, we can say
that it is the responsibility of the of the view's to maintain the consistency
in its presentation when the model changes.
3). Controller:
Whenever the user sends a request for something then it always go through the
controller. The controller is responsible for intercepting the requests from
view and passes it to the model for the appropriate action. After the action
has been taken on the data, the controller is responsible for directing the
appropriate view to the user. In GUIs, the views and the controllers
often work very closely together.
In addition to dividing the
application into three kinds of components, the MVC design defines the
interactions between them.
- A controller can send commands to its associated view to change the view's presentation of the model (for example, by scrolling through a document). It can send commands to the model to update the model's state (e.g. editing a document).
- A model notifies its associated views and controllers when there has been a change in its state. This notification allows the views to produce updated output, and the controllers to change the available set of commands. A passive implementation of MVC omits these notifications, because the application does not require them or the software platform does not support them.
- A view requests from the model the information that it needs to generate an output representation.
With the responsibilities of each
component thus defined, MVC allows different views and controllers to be
developed for the same model. It also allows the creation of general-purpose software frameworks
to manage the interactions.
No comments:
Post a Comment