SlideShare a Scribd company logo
Model –View- Controller
Architecture
- Pankaj Avhad
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
Flow Line of Concept
 About MVC
 Model
 View
 Controller
 Origin of MVC
 Working of MVC
 Point in MVC
 Conclusion
 Reference
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
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
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)
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
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
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)
Conclusion
 MVC is a sound architectural design for almost any GUI application
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).
Model View Controller  ext4
Thank You
Ad

More Related Content

What's hot (18)

Architectural Design & Patterns
Architectural Design&PatternsArchitectural Design&Patterns
Architectural Design & Patterns
Inocentshuja Ahmad
 
Intro ASP MVC
Intro ASP MVCIntro ASP MVC
Intro ASP MVC
KrishnaPPatel
 
Very basic of asp.net mvc with c#
Very basic of asp.net mvc with c#Very basic of asp.net mvc with c#
Very basic of asp.net mvc with c#
Shreejan Acharya
 
MVC
MVCMVC
MVC
Devan Muthunayakan Sreemandiram
 
Acrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVMAcrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVM
Dong-Ho Lee
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
Julia Vi
 
Architecture logicielle #4 : mvc
Architecture logicielle #4 : mvcArchitecture logicielle #4 : mvc
Architecture logicielle #4 : mvc
Jean Michel
 
Design patterns
Design patternsDesign patterns
Design patterns
Ahmed Elharouny
 
Just a View: An Introduction To Model-View-Controller Pattern
Just a View:  An Introduction To Model-View-Controller PatternJust a View:  An Introduction To Model-View-Controller Pattern
Just a View: An Introduction To Model-View-Controller Pattern
Aaron Nordyke
 
Design pattern
Design patternDesign pattern
Design pattern
Pawan Kumar Tiwari
 
MVVM Presentation
MVVM PresentationMVVM Presentation
MVVM Presentation
Javad Arjmandi
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
alkuzaee
 
Ui design patterns
Ui design patternsUi design patterns
Ui design patterns
Jorge Ortiz
 
MVP in Android by Ratanak
MVP in Android by RatanakMVP in Android by Ratanak
MVP in Android by Ratanak
ratanak pek
 
Software architecture
Software architectureSoftware architecture
Software architecture
nazn
 
IntroductionToMVC
IntroductionToMVCIntroductionToMVC
IntroductionToMVC
Akhil Mittal
 
Cs 1023 lec 2 (week 1) edit 1
Cs 1023  lec 2 (week 1) edit 1Cs 1023  lec 2 (week 1) edit 1
Cs 1023 lec 2 (week 1) edit 1
stanbridge
 
Systems Archticture
Systems ArchtictureSystems Archticture
Systems Archticture
Samer Abdalla
 
Architectural Design & Patterns
Architectural Design&PatternsArchitectural Design&Patterns
Architectural Design & Patterns
Inocentshuja Ahmad
 
Very basic of asp.net mvc with c#
Very basic of asp.net mvc with c#Very basic of asp.net mvc with c#
Very basic of asp.net mvc with c#
Shreejan Acharya
 
Acrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVMAcrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVM
Dong-Ho Lee
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
Julia Vi
 
Architecture logicielle #4 : mvc
Architecture logicielle #4 : mvcArchitecture logicielle #4 : mvc
Architecture logicielle #4 : mvc
Jean Michel
 
Just a View: An Introduction To Model-View-Controller Pattern
Just a View:  An Introduction To Model-View-Controller PatternJust a View:  An Introduction To Model-View-Controller Pattern
Just a View: An Introduction To Model-View-Controller Pattern
Aaron Nordyke
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
alkuzaee
 
Ui design patterns
Ui design patternsUi design patterns
Ui design patterns
Jorge Ortiz
 
MVP in Android by Ratanak
MVP in Android by RatanakMVP in Android by Ratanak
MVP in Android by Ratanak
ratanak pek
 
Software architecture
Software architectureSoftware architecture
Software architecture
nazn
 
Cs 1023 lec 2 (week 1) edit 1
Cs 1023  lec 2 (week 1) edit 1Cs 1023  lec 2 (week 1) edit 1
Cs 1023 lec 2 (week 1) edit 1
stanbridge
 

Similar to Model View Controller ext4 (20)

Ppt of Basic MVC Structure
Ppt of Basic MVC StructurePpt of Basic MVC Structure
Ppt of Basic MVC Structure
Dipika Wadhvani
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
QuickwayInfoSystems3
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
QuickwayInfoSystems3
 
Mvc 130330091359-phpapp01
Mvc 130330091359-phpapp01Mvc 130330091359-phpapp01
Mvc 130330091359-phpapp01
Jennie Gajjar
 
Mvc
MvcMvc
Mvc
abhigad
 
MVC.pptx
MVC.pptxMVC.pptx
MVC.pptx
HassanAliKhan36
 
Model View Controller (MVC)
Model View Controller (MVC)Model View Controller (MVC)
Model View Controller (MVC)
Javier Antonio Humarán Peñuñuri
 
Ios models
Ios modelsIos models
Ios models
JUDYFLAVIAB
 
MVC
MVCMVC
MVC
Iman Mehmandoust
 
Mvc Architecture in a web based application
Mvc Architecture in a web based applicationMvc Architecture in a web based application
Mvc Architecture in a web based application
OnGraph Technologies Pvt. Ltd.
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobile
naral
 
Persentation
PersentationPersentation
Persentation
Accord Software & Systems
 
Verbal+Visual: MVC Structure. Model, View, Controller.
Verbal+Visual: MVC Structure.  Model, View, Controller.Verbal+Visual: MVC Structure.  Model, View, Controller.
Verbal+Visual: MVC Structure. Model, View, Controller.
Anshey Bhatia
 
Mvc vs mvp vs mvvm a guide on architecture presentation patterns
Mvc vs mvp vs mvvm  a guide on architecture presentation patternsMvc vs mvp vs mvvm  a guide on architecture presentation patterns
Mvc vs mvp vs mvvm a guide on architecture presentation patterns
Concetto Labs
 
Model viewcontrolle
Model viewcontrolleModel viewcontrolle
Model viewcontrolle
Kinjal Gor
 
MVC
MVCMVC
MVC
Ravi Bansal
 
MVC Architecture
MVC ArchitectureMVC Architecture
MVC Architecture
Prem Sanil
 
Avigma Tech LLC- Why the MVC pattern so popular?
Avigma Tech LLC- Why the MVC pattern so popular?Avigma Tech LLC- Why the MVC pattern so popular?
Avigma Tech LLC- Why the MVC pattern so popular?
Mike Brown
 
Why MVC?
Why MVC?Why MVC?
Why MVC?
Wayne Tun Myint
 
mvc development company in UK.
mvc development company in UK.mvc development company in UK.
mvc development company in UK.
Techrishblogger
 
Ppt of Basic MVC Structure
Ppt of Basic MVC StructurePpt of Basic MVC Structure
Ppt of Basic MVC Structure
Dipika Wadhvani
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
QuickwayInfoSystems3
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
QuickwayInfoSystems3
 
Mvc 130330091359-phpapp01
Mvc 130330091359-phpapp01Mvc 130330091359-phpapp01
Mvc 130330091359-phpapp01
Jennie Gajjar
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobile
naral
 
Verbal+Visual: MVC Structure. Model, View, Controller.
Verbal+Visual: MVC Structure.  Model, View, Controller.Verbal+Visual: MVC Structure.  Model, View, Controller.
Verbal+Visual: MVC Structure. Model, View, Controller.
Anshey Bhatia
 
Mvc vs mvp vs mvvm a guide on architecture presentation patterns
Mvc vs mvp vs mvvm  a guide on architecture presentation patternsMvc vs mvp vs mvvm  a guide on architecture presentation patterns
Mvc vs mvp vs mvvm a guide on architecture presentation patterns
Concetto Labs
 
Model viewcontrolle
Model viewcontrolleModel viewcontrolle
Model viewcontrolle
Kinjal Gor
 
MVC Architecture
MVC ArchitectureMVC Architecture
MVC Architecture
Prem Sanil
 
Avigma Tech LLC- Why the MVC pattern so popular?
Avigma Tech LLC- Why the MVC pattern so popular?Avigma Tech LLC- Why the MVC pattern so popular?
Avigma Tech LLC- Why the MVC pattern so popular?
Mike Brown
 
mvc development company in UK.
mvc development company in UK.mvc development company in UK.
mvc development company in UK.
Techrishblogger
 
Ad

Recently uploaded (20)

Frontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend EngineersFrontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend Engineers
Michael Hertzberg
 
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning ModelsMode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Journal of Soft Computing in Civil Engineering
 
DED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedungDED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedung
nabilarizqifadhilah1
 
ML_Unit_VI_DEEP LEARNING_Introduction to ANN.pdf
ML_Unit_VI_DEEP LEARNING_Introduction to ANN.pdfML_Unit_VI_DEEP LEARNING_Introduction to ANN.pdf
ML_Unit_VI_DEEP LEARNING_Introduction to ANN.pdf
rameshwarchintamani
 
David Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry - Specializes In AWS, Microservices And Python.pdfDavid Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry
 
Autodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User InterfaceAutodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User Interface
Atif Razi
 
twin tower attack 2001 new york city
twin  tower  attack  2001 new  york citytwin  tower  attack  2001 new  york city
twin tower attack 2001 new york city
harishreemavs
 
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink DisplayHow to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
CircuitDigest
 
Design of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdfDesign of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdf
Kamel Farid
 
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
ajayrm685
 
Control Methods of Noise Pollutions.pptx
Control Methods of Noise Pollutions.pptxControl Methods of Noise Pollutions.pptx
Control Methods of Noise Pollutions.pptx
vvsasane
 
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
PawachMetharattanara
 
Automatic Quality Assessment for Speech and Beyond
Automatic Quality Assessment for Speech and BeyondAutomatic Quality Assessment for Speech and Beyond
Automatic Quality Assessment for Speech and Beyond
NU_I_TODALAB
 
Machine Learning basics POWERPOINT PRESENETATION
Machine Learning basics POWERPOINT PRESENETATIONMachine Learning basics POWERPOINT PRESENETATION
Machine Learning basics POWERPOINT PRESENETATION
DarrinBright1
 
Evonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdfEvonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdf
szhang13
 
Jacob Murphy Australia - Excels In Optimizing Software Applications
Jacob Murphy Australia - Excels In Optimizing Software ApplicationsJacob Murphy Australia - Excels In Optimizing Software Applications
Jacob Murphy Australia - Excels In Optimizing Software Applications
Jacob Murphy Australia
 
Working with USDOT UTCs: From Conception to Implementation
Working with USDOT UTCs: From Conception to ImplementationWorking with USDOT UTCs: From Conception to Implementation
Working with USDOT UTCs: From Conception to Implementation
Alabama Transportation Assistance Program
 
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
AI Publications
 
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdfML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
rameshwarchintamani
 
Personal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.pptPersonal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.ppt
ganjangbegu579
 
Frontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend EngineersFrontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend Engineers
Michael Hertzberg
 
DED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedungDED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedung
nabilarizqifadhilah1
 
ML_Unit_VI_DEEP LEARNING_Introduction to ANN.pdf
ML_Unit_VI_DEEP LEARNING_Introduction to ANN.pdfML_Unit_VI_DEEP LEARNING_Introduction to ANN.pdf
ML_Unit_VI_DEEP LEARNING_Introduction to ANN.pdf
rameshwarchintamani
 
David Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry - Specializes In AWS, Microservices And Python.pdfDavid Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry
 
Autodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User InterfaceAutodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User Interface
Atif Razi
 
twin tower attack 2001 new york city
twin  tower  attack  2001 new  york citytwin  tower  attack  2001 new  york city
twin tower attack 2001 new york city
harishreemavs
 
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink DisplayHow to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
CircuitDigest
 
Design of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdfDesign of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdf
Kamel Farid
 
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
ajayrm685
 
Control Methods of Noise Pollutions.pptx
Control Methods of Noise Pollutions.pptxControl Methods of Noise Pollutions.pptx
Control Methods of Noise Pollutions.pptx
vvsasane
 
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
PawachMetharattanara
 
Automatic Quality Assessment for Speech and Beyond
Automatic Quality Assessment for Speech and BeyondAutomatic Quality Assessment for Speech and Beyond
Automatic Quality Assessment for Speech and Beyond
NU_I_TODALAB
 
Machine Learning basics POWERPOINT PRESENETATION
Machine Learning basics POWERPOINT PRESENETATIONMachine Learning basics POWERPOINT PRESENETATION
Machine Learning basics POWERPOINT PRESENETATION
DarrinBright1
 
Evonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdfEvonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdf
szhang13
 
Jacob Murphy Australia - Excels In Optimizing Software Applications
Jacob Murphy Australia - Excels In Optimizing Software ApplicationsJacob Murphy Australia - Excels In Optimizing Software Applications
Jacob Murphy Australia - Excels In Optimizing Software Applications
Jacob Murphy Australia
 
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
AI Publications
 
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdfML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
rameshwarchintamani
 
Personal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.pptPersonal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.ppt
ganjangbegu579
 
Ad

Model View Controller ext4

  • 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).
  翻译: