SlideShare a Scribd company logo
1 of 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

More Related Content

Similar to 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
 

Similar to 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
 

Recently uploaded

PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Lucknow
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 

Recently uploaded (20)

PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 

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