by Dinesh Thakur

• The (Model View Controller) MVC design pattern separates a software component into three distinct pieces: a view, a model  and a controller.

• The model stores the content. It manages the state and conducts all transformations on that state. The MVC model has no specific knowledge of either its controllers or its views. The Link is maintain by system between model and views and notifies the views when the state change occurs. For example - For the button component model will hold the information about the state of button such as whether the button is pushed or not.

• The view displays the contents. It manages the visual display of the state represented by the model. Thus  model view can be represented graphically to the user. For example - For example: For the button component the color, the size of the button will be decided by the view.

                                    MVC Design Pattern


• The controller is for managing the user interaction with the model. It is basically for handling the user input. The controller takes care of mouse and keyboard events. For example - For the button component the reaction of events on the button press will be decided by the controller.

• The MVC architecture of swing specifies how these three objects(Model, View and Controller) interact.

• For the text field the model is nothing but the contents of the text field. The model must implement the method to change the contents and to discover the contents. For example text model had methods to add to remove the characters. One important thing to note is that the model is completely non visual.

• For a single model there can be more than one views. Each view can show different aspect of the content. For example: A particular web page can be viewed in its WYSIWYC(What-You-See-Is-What-You-Get)) form or in the raw tagged form. But there are some components like button for which it is not possible to have multiple views for the same model.

• The controller handles the user-input events such as mouse clicks and keyboard strokes. On receiving the events the controller decides whether to translate it into corresponding model or in views.

• If user presses the button then the controller calls the event handling methods in order to handle the button press. The controller tells the view to update itself and to display the desired result. For displaying the desired result the view reads the content from the model. Thus model-view and controller works together in order to accomplish the certain task.