SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Slides adapted from Alex Mariakakis
with material from Krysta Yousoufian,
Kellen Donohue, and James Fogarty
Section 8:
Model-View-Controller
HOMEWORK TIPS
 You must include the
@SuppressWarnings("nullness") tags so
that your code will build during grading
 Run ant validate on attu before submitting
 HW7 requires you to modify your code from
HW5 and HW6
 Make sure to address any issues you had that
caused you to fail HW5 or HW6 staff tests
MVC
 The classic design pattern
 Used for data-driven user applications
 Such apps juggle several tasks:
 Loading and storing the data – getting it in/out of storage on request
 Constructing the user interface – what the user sees
 Interpreting user actions – deciding whether to modify the UI or data
 These tasks are largely independent of each
other
 Model, view, and controller each get one task
MODEL
talks to data source
to retrieve and store
data
Which database table is
the requested data stored
in?
What SQL query will get
me the data
I need?
VIEW
asks model for data
and presents it in a
user-friendly format
Would this text look better
blue or red? In the bottom
corner
or front and center?
Should these items go in a
dropdown list or radio
buttons?
CONTROLLER
listens for the user
to change data or
state in the UI,
notifying the model
or view accordingly
The user just clicked the
“hide details” button. I
better tell the view.
The user just changed the
event details. I better let the
model know to update the
data.
BENEFITS OF MVC
 Organization of code
 Maintainable, easy to find what you need
 Ease of development
 Build and test components independently
 Flexibility
 Swap out views for different presentations of the same data (ex: calendar
daily, weekly, or monthly view)
 Swap out models to change data storage without affecting user
MVC FLOW IN THEORY
Model
View
Controller
MVC FLOW
 In theory…
 Pattern of behavior in response to inputs (controller) are independent of
visual geometry (view)
 Controller contacts view to interpret what input events should mean in the
context of the view
 In practice…
 View and controller are so intertwined that they almost always occur in
matched pairs (ex: command line interface)
 Many architectures combine the two
MVC FLOW IN PRACTICE
Model
View
Controller
HOMEWORKS
 HW8 – fine to keep view and controller
together
 HW9 – separate the view and controller
PUSH VS. PULL
Model
View
Controller
PUSH VS. PULL ARCHITECTURE
 Push architecture
 As soon as the model changes, it notifies all of
the views
 Pull architecture
 When a view needs to be updated, it asks the
model for new data
PUSH VS. PULL ARCHITECTURE
PUSH VS. PULL ARCHITECTURE
 Advantages for push
 Guaranteed to have latest data in case
something goes wrong later on
 Advantages for pull
 Avoid unnecessary updates, not nearly as
intensive on the view
MVC EXAMPLE – TRAFFIC SIGNAL
TRAFFIC SIGNAL – MVC
Component Model View Controller
Detect cars waiting to enter
intersection
Traffic lights to direct car traffic
Regulate valid traffic movements
Manual override for particular lights
Detect pedestrians waiting to cross
Pedestrian signals to direct
pedestrians
External timer which triggers changes
at set interval
X
X
X
X
X
X
X
TRAFFIC SIGNAL
 Model
 Stores current state of traffic flow
 Knows current direction of traffic
 Capable of skipping a light cycle
 Stores whether there are cars and/or pedestrians waiting
 View
 Conveys information to cars and pedestrians in a specific
direction
 Controller
 Aware of model’s current direction
 Triggers methods to notify model that state should change
TRAFFIC SIGNAL CODE
 Model
 TrafficModel – keeps track of which lights should be on and off
 View
 CarLight – shows relevant state of TrafficModel to cars
 PedestrianLight – shows relevant state of TrafficModel to
pedestrians
 Controller
 PedestrianButton – notifies TrafficModel that there is a pedestrian
waiting
 CarDetector – notifies TrafficModel that there is a car waiting
 LightSwitch – enables or disables the light
 Timer – regulates time in some way, possibly to skip cycles
HW8 OVERVIEW
 Apply your generic graph & Dijkstra’s to
campus map data
 Given a list of buildings and walking paths
 Produce routes from one building to another
on the walking paths
HW8 DATA FORMAT
 List of buildings (abbreviation, name, loc in
pixels)
BAG Bagley Hall (East Entrance) 1914.5103,1708.8816
BGR By George 1671.5499,1258.4333
 List of paths (endpoint 1, endpoint 2, dist in feet)
1903.7201,1952.4322
1906.1864,1939.0633: 26.583482327919597
1897.9472,1960.0194: 20.597253035175832
1915.7143,1956.5: 26.68364745009741
2337.0143,806.8278
2346.3446,817.55768: 29.685363221542797
2321.6193,788.16714: 49.5110360968527
2316.4876,813.59229: 44.65826043418031
 (0,0) is in the upper left
MVC IN HW8
 Model stores graph, performs Dijkstra’s
 View shows results to users in text format
 Controller takes user commands and uses
view to show results
 View and Controller will change in HW9, but
Model will stay the same

Weitere ähnliche Inhalte

Ähnlich wie S08-Model-View-Controller.pptx

Smart Client Software Factory 2010
Smart Client Software Factory  2010Smart Client Software Factory  2010
Smart Client Software Factory 2010Tomy Ismail
 
Introduction To Mvc
Introduction To MvcIntroduction To Mvc
Introduction To MvcVolkan Uzun
 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Svetlin Nakov
 
Trinug - repository pattern
Trinug - repository patternTrinug - repository pattern
Trinug - repository patternBhuvnesh Bhatt
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software ArchitectureIvano Malavolta
 
Principles of MVC for Rails Developers
Principles of MVC for Rails DevelopersPrinciples of MVC for Rails Developers
Principles of MVC for Rails DevelopersEdureka!
 
Leveling up with AngularJS
Leveling up with AngularJSLeveling up with AngularJS
Leveling up with AngularJSAustin Condiff
 
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.pptxQuickwayInfoSystems3
 
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.pptxQuickwayInfoSystems3
 
Web App Architectures and Design Patterns
Web App Architectures and Design PatternsWeb App Architectures and Design Patterns
Web App Architectures and Design PatternsRui Sousa
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
 
Marlabs - ASP.NET Concepts
Marlabs - ASP.NET ConceptsMarlabs - ASP.NET Concepts
Marlabs - ASP.NET ConceptsMarlabs
 
Android Architecture Components
Android Architecture ComponentsAndroid Architecture Components
Android Architecture ComponentsDarshan Parikh
 
Mvvm in the real world tccc10
Mvvm in the real world   tccc10Mvvm in the real world   tccc10
Mvvm in the real world tccc10Bryan Anderson
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patternsalkuzaee
 

Ähnlich wie S08-Model-View-Controller.pptx (20)

Smart Client Software Factory 2010
Smart Client Software Factory  2010Smart Client Software Factory  2010
Smart Client Software Factory 2010
 
Introduction To Mvc
Introduction To MvcIntroduction To Mvc
Introduction To Mvc
 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
 
Trinug - repository pattern
Trinug - repository patternTrinug - repository pattern
Trinug - repository pattern
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture
 
Principles of MVC for Rails Developers
Principles of MVC for Rails DevelopersPrinciples of MVC for Rails Developers
Principles of MVC for Rails Developers
 
MVC Web Application
MVC Web Application MVC Web Application
MVC Web Application
 
Leveling up with AngularJS
Leveling up with AngularJSLeveling up with AngularJS
Leveling up with AngularJS
 
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
 
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
 
Web App Architectures and Design Patterns
Web App Architectures and Design PatternsWeb App Architectures and Design Patterns
Web App Architectures and Design Patterns
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture
 
Marlabs - ASP.NET Concepts
Marlabs - ASP.NET ConceptsMarlabs - ASP.NET Concepts
Marlabs - ASP.NET Concepts
 
Android Architecture Components
Android Architecture ComponentsAndroid Architecture Components
Android Architecture Components
 
MVC
MVCMVC
MVC
 
MVC - In Details
MVC - In DetailsMVC - In Details
MVC - In Details
 
Mvvm in the real world tccc10
Mvvm in the real world   tccc10Mvvm in the real world   tccc10
Mvvm in the real world tccc10
 
MVC in PHP
MVC in PHPMVC in PHP
MVC in PHP
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Architecture & TYPO3
Architecture & TYPO3Architecture & TYPO3
Architecture & TYPO3
 

Kürzlich hochgeladen

Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubaikojalkojal131
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...SUHANI PANDEY
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)Delhi Call girls
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.soniya singh
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...Neha Pandey
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445ruhi
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...Escorts Call Girls
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLimonikaupta
 

Kürzlich hochgeladen (20)

Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 

S08-Model-View-Controller.pptx

  • 1. Slides adapted from Alex Mariakakis with material from Krysta Yousoufian, Kellen Donohue, and James Fogarty Section 8: Model-View-Controller
  • 2. HOMEWORK TIPS  You must include the @SuppressWarnings("nullness") tags so that your code will build during grading  Run ant validate on attu before submitting  HW7 requires you to modify your code from HW5 and HW6  Make sure to address any issues you had that caused you to fail HW5 or HW6 staff tests
  • 3. MVC  The classic design pattern  Used for data-driven user applications  Such apps juggle several tasks:  Loading and storing the data – getting it in/out of storage on request  Constructing the user interface – what the user sees  Interpreting user actions – deciding whether to modify the UI or data  These tasks are largely independent of each other  Model, view, and controller each get one task
  • 4. MODEL talks to data source to retrieve and store data Which database table is the requested data stored in? What SQL query will get me the data I need?
  • 5. VIEW asks model for data and presents it in a user-friendly format Would this text look better blue or red? In the bottom corner or front and center? Should these items go in a dropdown list or radio buttons?
  • 6. CONTROLLER listens for the user to change data or state in the UI, notifying the model or view accordingly The user just clicked the “hide details” button. I better tell the view. The user just changed the event details. I better let the model know to update the data.
  • 7. BENEFITS OF MVC  Organization of code  Maintainable, easy to find what you need  Ease of development  Build and test components independently  Flexibility  Swap out views for different presentations of the same data (ex: calendar daily, weekly, or monthly view)  Swap out models to change data storage without affecting user
  • 8. MVC FLOW IN THEORY Model View Controller
  • 9. MVC FLOW  In theory…  Pattern of behavior in response to inputs (controller) are independent of visual geometry (view)  Controller contacts view to interpret what input events should mean in the context of the view  In practice…  View and controller are so intertwined that they almost always occur in matched pairs (ex: command line interface)  Many architectures combine the two
  • 10. MVC FLOW IN PRACTICE Model View Controller
  • 11. HOMEWORKS  HW8 – fine to keep view and controller together  HW9 – separate the view and controller
  • 13. PUSH VS. PULL ARCHITECTURE  Push architecture  As soon as the model changes, it notifies all of the views  Pull architecture  When a view needs to be updated, it asks the model for new data
  • 14. PUSH VS. PULL ARCHITECTURE
  • 15. PUSH VS. PULL ARCHITECTURE  Advantages for push  Guaranteed to have latest data in case something goes wrong later on  Advantages for pull  Avoid unnecessary updates, not nearly as intensive on the view
  • 16. MVC EXAMPLE – TRAFFIC SIGNAL
  • 17. TRAFFIC SIGNAL – MVC Component Model View Controller Detect cars waiting to enter intersection Traffic lights to direct car traffic Regulate valid traffic movements Manual override for particular lights Detect pedestrians waiting to cross Pedestrian signals to direct pedestrians External timer which triggers changes at set interval X X X X X X X
  • 18. TRAFFIC SIGNAL  Model  Stores current state of traffic flow  Knows current direction of traffic  Capable of skipping a light cycle  Stores whether there are cars and/or pedestrians waiting  View  Conveys information to cars and pedestrians in a specific direction  Controller  Aware of model’s current direction  Triggers methods to notify model that state should change
  • 19. TRAFFIC SIGNAL CODE  Model  TrafficModel – keeps track of which lights should be on and off  View  CarLight – shows relevant state of TrafficModel to cars  PedestrianLight – shows relevant state of TrafficModel to pedestrians  Controller  PedestrianButton – notifies TrafficModel that there is a pedestrian waiting  CarDetector – notifies TrafficModel that there is a car waiting  LightSwitch – enables or disables the light  Timer – regulates time in some way, possibly to skip cycles
  • 20. HW8 OVERVIEW  Apply your generic graph & Dijkstra’s to campus map data  Given a list of buildings and walking paths  Produce routes from one building to another on the walking paths
  • 21. HW8 DATA FORMAT  List of buildings (abbreviation, name, loc in pixels) BAG Bagley Hall (East Entrance) 1914.5103,1708.8816 BGR By George 1671.5499,1258.4333  List of paths (endpoint 1, endpoint 2, dist in feet) 1903.7201,1952.4322 1906.1864,1939.0633: 26.583482327919597 1897.9472,1960.0194: 20.597253035175832 1915.7143,1956.5: 26.68364745009741 2337.0143,806.8278 2346.3446,817.55768: 29.685363221542797 2321.6193,788.16714: 49.5110360968527 2316.4876,813.59229: 44.65826043418031  (0,0) is in the upper left
  • 22. MVC IN HW8  Model stores graph, performs Dijkstra’s  View shows results to users in text format  Controller takes user commands and uses view to show results  View and Controller will change in HW9, but Model will stay the same