SlideShare a Scribd company logo
MVC pattern and
implementation in java
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


• Interactive applications with a flexible
  human-computer interface
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.
Common MVC Implementation
MVC Actions
• Model
          -- Notify view about data updates
• View
         --Change rendering as needed
• Controller
         --Select view to be rendered based on
  event notifications and method invocations
MVC Interaction Order

1.    User performs action, controller is notified.
2.    Controller may request changes to model.
3.    Controller may tell view to update.
4.    Model may notify view if it has been modified.
5.    View may need to query model for current data.
6.    View updates display for user.
                                       6
              4              View
                      5
     Model                      3

                                       1
                  2
                          Controller
MVC Pattern – Model
• Contains application & its data

• Provide methods to access & update data

• Interface defines allowed interactions

• Fixed interface enable both model & GUIs to be easily pulled out and
  replaced

• Examples:-

   – Text documents

   – Spreadsheets

   – Web browser

   – Video games
MVC Pattern – View
 Provides visual representation of model.

 Multiple views can display model at same time.




 When model is updated, all its views are informed & given
  chance to update themselves.
MVC Pattern – Controller

• Users interact with the controller

• Interprets mouse movement, keystrokes, etc.

• Communicates those activities to the model

• Interaction with model indirectly causes view(s) to
  update
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.

 Separating Controller from Model (application behavior
  from data representation)
    allows configurable mapping of user actions on the
     Controller to application functions on the Model.
 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
 allows response to user input (controller) to be easily
  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
Mvc   pattern   and implementation   in   java fair
Ad

Recommended

MVC Framework
MVC Framework
Ashton Feller
 
Mvc architecture
Mvc architecture
Surbhi Panhalkar
 
Introduction to Object Oriented Programming
Introduction to Object Oriented Programming
Md. Tanvir Hossain
 
Express js
Express js
Manav Prasad
 
Linq
Linq
Vishwa Mohan
 
Ajax ppt
Ajax ppt
OECLIB Odisha Electronics Control Library
 
Java Course 11: Design Patterns
Java Course 11: Design Patterns
Anton Keks
 
JDBC – Java Database Connectivity
JDBC – Java Database Connectivity
Information Technology
 
JavaScript Lecture notes.pptx
JavaScript Lecture notes.pptx
NishaRohit6
 
OOP Introduction with java programming language
OOP Introduction with java programming language
Md.Al-imran Roton
 
MVC Architecture
MVC Architecture
Prem Sanil
 
User Interface Design- Module 2 Uid Process
User Interface Design- Module 2 Uid Process
brindaN
 
Model View Controller (MVC)
Model View Controller (MVC)
Javier Antonio Humarán Peñuñuri
 
Asynchronous JavaScript Programming
Asynchronous JavaScript Programming
Haim Michael
 
Object Oriented Programming
Object Oriented Programming
Iqra khalil
 
Chapter-4 Enhanced ER Model
Chapter-4 Enhanced ER Model
Kunal Anand
 
Operators in java
Operators in java
Then Murugeshwari
 
JavaFX Overview
JavaFX Overview
José Maria Silveira Neto
 
Arrays in Java
Arrays in Java
Naz Abdalla
 
Introduction to .NET Framework
Introduction to .NET Framework
Raghuveer Guthikonda
 
Java interfaces
Java interfaces
Raja Sekhar
 
Functional programming
Functional programming
ijcd
 
Introduction to php
Introduction to php
Taha Malampatti
 
OOP java
OOP java
xball977
 
JavaFX Presentation
JavaFX Presentation
Mochamad Taufik Mulyadi
 
LINQ in C#
LINQ in C#
Basant Medhat
 
Object Oriented Programming In .Net
Object Oriented Programming In .Net
Greg Sohl
 
Object Oriented Programming Concepts for beginners
Object Oriented Programming Concepts for beginners
Vibhawa Nirmal
 
Spring Mvc
Spring Mvc
ifnu bima
 
Produtividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVC
Waldyr Felix
 

More Related Content

What's hot (20)

JavaScript Lecture notes.pptx
JavaScript Lecture notes.pptx
NishaRohit6
 
OOP Introduction with java programming language
OOP Introduction with java programming language
Md.Al-imran Roton
 
MVC Architecture
MVC Architecture
Prem Sanil
 
User Interface Design- Module 2 Uid Process
User Interface Design- Module 2 Uid Process
brindaN
 
Model View Controller (MVC)
Model View Controller (MVC)
Javier Antonio Humarán Peñuñuri
 
Asynchronous JavaScript Programming
Asynchronous JavaScript Programming
Haim Michael
 
Object Oriented Programming
Object Oriented Programming
Iqra khalil
 
Chapter-4 Enhanced ER Model
Chapter-4 Enhanced ER Model
Kunal Anand
 
Operators in java
Operators in java
Then Murugeshwari
 
JavaFX Overview
JavaFX Overview
José Maria Silveira Neto
 
Arrays in Java
Arrays in Java
Naz Abdalla
 
Introduction to .NET Framework
Introduction to .NET Framework
Raghuveer Guthikonda
 
Java interfaces
Java interfaces
Raja Sekhar
 
Functional programming
Functional programming
ijcd
 
Introduction to php
Introduction to php
Taha Malampatti
 
OOP java
OOP java
xball977
 
JavaFX Presentation
JavaFX Presentation
Mochamad Taufik Mulyadi
 
LINQ in C#
LINQ in C#
Basant Medhat
 
Object Oriented Programming In .Net
Object Oriented Programming In .Net
Greg Sohl
 
Object Oriented Programming Concepts for beginners
Object Oriented Programming Concepts for beginners
Vibhawa Nirmal
 
JavaScript Lecture notes.pptx
JavaScript Lecture notes.pptx
NishaRohit6
 
OOP Introduction with java programming language
OOP Introduction with java programming language
Md.Al-imran Roton
 
MVC Architecture
MVC Architecture
Prem Sanil
 
User Interface Design- Module 2 Uid Process
User Interface Design- Module 2 Uid Process
brindaN
 
Asynchronous JavaScript Programming
Asynchronous JavaScript Programming
Haim Michael
 
Object Oriented Programming
Object Oriented Programming
Iqra khalil
 
Chapter-4 Enhanced ER Model
Chapter-4 Enhanced ER Model
Kunal Anand
 
Functional programming
Functional programming
ijcd
 
Object Oriented Programming In .Net
Object Oriented Programming In .Net
Greg Sohl
 
Object Oriented Programming Concepts for beginners
Object Oriented Programming Concepts for beginners
Vibhawa Nirmal
 

Viewers also liked (20)

Spring Mvc
Spring Mvc
ifnu bima
 
Produtividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVC
Waldyr Felix
 
Physical examination of cattle lecture 2
Physical examination of cattle lecture 2
Dauda Iliyasu
 
MVC
MVC
akshin
 
Ado.net
Ado.net
Iblesoft
 
Parturition
Parturition
Dauda Iliyasu
 
Spring Mvc,Java, Spring
Spring Mvc,Java, Spring
ifnu bima
 
ADO.NET
ADO.NET
Farzad Wadia
 
For Beginers - ADO.Net
For Beginers - ADO.Net
Snehal Harawande
 
Introduction to ADO.NET
Introduction to ADO.NET
rchakra
 
ADO.NET -database connection
ADO.NET -database connection
Anekwong Yoddumnern
 
Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5
Tuna Tore
 
Seminar on java
Seminar on java
shathika
 
ASP.NET MVC Presentation
ASP.NET MVC Presentation
ivpol
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVC
Khaled Musaied
 
Spring MVC Basics
Spring MVC Basics
Bozhidar Bozhanov
 
Core java slides
Core java slides
Abhilash Nair
 
Introduction to Cyber Security
Introduction to Cyber Security
Stephen Lahanas
 
Database administrator
Database administrator
Tech_MX
 
Symbol table design (Compiler Construction)
Symbol table design (Compiler Construction)
Tech_MX
 
Produtividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVC
Waldyr Felix
 
Physical examination of cattle lecture 2
Physical examination of cattle lecture 2
Dauda Iliyasu
 
Spring Mvc,Java, Spring
Spring Mvc,Java, Spring
ifnu bima
 
Introduction to ADO.NET
Introduction to ADO.NET
rchakra
 
Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5
Tuna Tore
 
Seminar on java
Seminar on java
shathika
 
ASP.NET MVC Presentation
ASP.NET MVC Presentation
ivpol
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVC
Khaled Musaied
 
Introduction to Cyber Security
Introduction to Cyber Security
Stephen Lahanas
 
Database administrator
Database administrator
Tech_MX
 
Symbol table design (Compiler Construction)
Symbol table design (Compiler Construction)
Tech_MX
 
Ad

Similar to Mvc pattern and implementation in java fair (20)

MVC.pptx
MVC.pptx
HassanAliKhan36
 
Ppt of Basic MVC Structure
Ppt of Basic MVC Structure
Dipika Wadhvani
 
MVC Seminar Presantation
MVC Seminar Presantation
Abhishek Yadav
 
Model View Controller
Model View Controller
Madhukar Kumar
 
Model View Controller ext4
Model View Controller ext4
Pankaj Avhad
 
MVC
MVC
Ravi Bansal
 
Mvc 130330091359-phpapp01
Mvc 130330091359-phpapp01
Jennie Gajjar
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobile
naral
 
Task 2 - Educational Article – Model View Controller (MVC)
Task 2 - Educational Article – Model View Controller (MVC)
Shubham Goenka
 
Web engineering - MVC
Web engineering - MVC
Nosheen Qamar
 
IRJET- MVC Framework: A Modern Web Application Development Approach and Working
IRJET- MVC Framework: A Modern Web Application Development Approach and Working
IRJET Journal
 
MVC in PHP
MVC in PHP
Vineet Kumar Saini
 
Verbal+Visual: MVC Structure. Model, View, Controller.
Verbal+Visual: MVC Structure. Model, View, Controller.
Anshey Bhatia
 
Model View Madness
Model View Madness
Mike Wilcox
 
Mvc
Mvc
abhigad
 
Mvc Architecture in a web based application
Mvc Architecture in a web based application
OnGraph Technologies Pvt. Ltd.
 
MVC Design Pattern in JavaScript by ADMEC Multimedia Institute
MVC Design Pattern in JavaScript by ADMEC Multimedia Institute
Ravi Bhadauria
 
MVC architecture
MVC architecture
Emily Bauman
 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVC
Anton Krasnoshchok
 
MVC architecture by Mohd.Awais on 18th Aug, 2017
MVC architecture by Mohd.Awais on 18th Aug, 2017
Innovation Studio
 
Ppt of Basic MVC Structure
Ppt of Basic MVC Structure
Dipika Wadhvani
 
MVC Seminar Presantation
MVC Seminar Presantation
Abhishek Yadav
 
Model View Controller ext4
Model View Controller ext4
Pankaj Avhad
 
Mvc 130330091359-phpapp01
Mvc 130330091359-phpapp01
Jennie Gajjar
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobile
naral
 
Task 2 - Educational Article – Model View Controller (MVC)
Task 2 - Educational Article – Model View Controller (MVC)
Shubham Goenka
 
Web engineering - MVC
Web engineering - MVC
Nosheen Qamar
 
IRJET- MVC Framework: A Modern Web Application Development Approach and Working
IRJET- MVC Framework: A Modern Web Application Development Approach and Working
IRJET Journal
 
Verbal+Visual: MVC Structure. Model, View, Controller.
Verbal+Visual: MVC Structure. Model, View, Controller.
Anshey Bhatia
 
Model View Madness
Model View Madness
Mike Wilcox
 
MVC Design Pattern in JavaScript by ADMEC Multimedia Institute
MVC Design Pattern in JavaScript by ADMEC Multimedia Institute
Ravi Bhadauria
 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVC
Anton Krasnoshchok
 
MVC architecture by Mohd.Awais on 18th Aug, 2017
MVC architecture by Mohd.Awais on 18th Aug, 2017
Innovation Studio
 
Ad

More from Tech_MX (20)

Virtual base class
Virtual base class
Tech_MX
 
Uid
Uid
Tech_MX
 
Theory of estimation
Theory of estimation
Tech_MX
 
Templates in C++
Templates in C++
Tech_MX
 
String & its application
String & its application
Tech_MX
 
Statistical quality__control_2
Statistical quality__control_2
Tech_MX
 
Stack data structure
Stack data structure
Tech_MX
 
Stack Data Structure & It's Application
Stack Data Structure & It's Application
Tech_MX
 
Spss
Spss
Tech_MX
 
Spanning trees & applications
Spanning trees & applications
Tech_MX
 
Set data structure 2
Set data structure 2
Tech_MX
 
Set data structure
Set data structure
Tech_MX
 
Real time Operating System
Real time Operating System
Tech_MX
 
Parsing
Parsing
Tech_MX
 
Mouse interrupts (Assembly Language & C)
Mouse interrupts (Assembly Language & C)
Tech_MX
 
Motherboard of a pc
Motherboard of a pc
Tech_MX
 
More on Lex
More on Lex
Tech_MX
 
MultiMedia dbms
MultiMedia dbms
Tech_MX
 
Merging files (Data Structure)
Merging files (Data Structure)
Tech_MX
 
Memory dbms
Memory dbms
Tech_MX
 
Virtual base class
Virtual base class
Tech_MX
 
Theory of estimation
Theory of estimation
Tech_MX
 
Templates in C++
Templates in C++
Tech_MX
 
String & its application
String & its application
Tech_MX
 
Statistical quality__control_2
Statistical quality__control_2
Tech_MX
 
Stack data structure
Stack data structure
Tech_MX
 
Stack Data Structure & It's Application
Stack Data Structure & It's Application
Tech_MX
 
Spanning trees & applications
Spanning trees & applications
Tech_MX
 
Set data structure 2
Set data structure 2
Tech_MX
 
Set data structure
Set data structure
Tech_MX
 
Real time Operating System
Real time Operating System
Tech_MX
 
Mouse interrupts (Assembly Language & C)
Mouse interrupts (Assembly Language & C)
Tech_MX
 
Motherboard of a pc
Motherboard of a pc
Tech_MX
 
More on Lex
More on Lex
Tech_MX
 
MultiMedia dbms
MultiMedia dbms
Tech_MX
 
Merging files (Data Structure)
Merging files (Data Structure)
Tech_MX
 
Memory dbms
Memory dbms
Tech_MX
 

Recently uploaded (20)

Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 

Mvc pattern and implementation in java fair

  • 2. 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
  • 3. CONTEXT • Interactive applications with a flexible human-computer interface
  • 4. 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.
  • 5. 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.
  • 6. SOLUTION MVC – Model View Controller
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 11. MVC Actions • Model -- Notify view about data updates • View --Change rendering as needed • Controller --Select view to be rendered based on event notifications and method invocations
  • 12. MVC Interaction Order 1. User performs action, controller is notified. 2. Controller may request changes to model. 3. Controller may tell view to update. 4. Model may notify view if it has been modified. 5. View may need to query model for current data. 6. View updates display for user. 6 4 View 5 Model 3 1 2 Controller
  • 13. MVC Pattern – Model • Contains application & its data • Provide methods to access & update data • Interface defines allowed interactions • Fixed interface enable both model & GUIs to be easily pulled out and replaced • Examples:- – Text documents – Spreadsheets – Web browser – Video games
  • 14. MVC Pattern – View  Provides visual representation of model.  Multiple views can display model at same time.  When model is updated, all its views are informed & given chance to update themselves.
  • 15. MVC Pattern – Controller • Users interact with the controller • Interprets mouse movement, keystrokes, etc. • Communicates those activities to the model • Interaction with model indirectly causes view(s) to update
  • 16. 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
  • 17. • 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
  • 18. 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.  Separating Controller from Model (application behavior from data representation)  allows configurable mapping of user actions on the Controller to application functions on the Model.
  • 19.  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
  • 20. 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  allows response to user input (controller) to be easily changed
  • 21. 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.