2. About Presenter
Have 7 years of experience
Technical lead at Synerzip
Previous Experience at
Software Engineer / UI developer at PubMatic
Senior Software Developer at MobiPrimo Technologies
Consultant at Saba
Software Developer at Eknotel
Krawler Platform Engineer at Krawler
3. Flow Line of Concept
About MVC
Model
View
Controller
Origin of MVC
Working of MVC
Point in MVC
Conclusion
Reference
4. About MVC
Architectural design pattern which works to separate data and user
interface (UI) for a more cohesive and modularized system.
It is widely adopted pattern in many languages and implementation
frameworks, whose purpose is to achieve clean separation between three
components of most any web application.
Model: Business and logic processing
View : User interface (UI)
Controller : Navigation and input
5. About MVC
Model
• Encapsulates application state
• Respond to state queries
• Express application functionality
• Notify views of changes
Controller
• Defines application behavior
• Maps user action to model
update
• Selects view of response
• One for each functionality
View
• Renders the models
• Requests update from model
• Sends user gesture to controller
• Allows controller to select view
View selection
User Gestures
Method of invocations
Events
State change
Update
6. Model, View and Controller
Model represents the data model
“Manages behavior and data of the application domain”
View represents the screen(s) shown to the user
“Manages the graphical and/or textual output to the portion of the bitmapped
display that is allocated to its application”
Controller represents interactions from the user that changes the data and
the view
“Interprets the mouse and keyboard inputs from the user, commanding the
model and/or the view to change as appropriate” (Burbeck)
7. Origin and Benefits of MVC
Origin
Presented by Trygve Reenskaug in 1979
First used in the Smalltalk-80 framework
Used in making Apple interfaces (Lisa and Macintosh)
Benefits
Separation of concerns in the codebase
Developer specialization and focus
Parallel development by separate teams
8. Working of MVC
User interacts with View
Controller handles input and updates model or changes the view
View, which relies on model to show data to user, get updated if necessary
via controller
Rinse and Repeat
9. Point
Provides a logical structure for heavily interactive system
Adheres to good engineering design principles and practices
Information hiding, less coupling, simplicity, etc.
Delegated control style
Just plain easier (even if it doesn’t look it)!
Study shows that most web developers tend to clump a UI program into one big
monolithic main class or a single messy javascript file.
Unfamiliarity stems from student tendency to program according to styles
presented in textbooks and not being introduced to design principles early
(Morse)
10. Conclusion
MVC is a sound architectural design for almost any GUI application
11. Reference
Wikipedia
Fox, Christopher. Introduction to Software Engineering Design. Boston:
Pearson, 2006.
Burbeck, Steve. Applications Programming in Smalltalk-80(TM): How to use
Model-View-Controller (MVC).