SlideShare a Scribd company logo
www.edureka.co/design-patterns
View Design Patterns course details at www.edureka.co/design-patterns
For Queries:
Post on Twitter @edurekaIN: #askEdureka
Post on Facebook /edurekaIN
For more details please contact us:
US : 1800 275 9730 (toll free)
INDIA : +91 88808 62004
Email us : webinars@edureka.co
Design Patterns : Solution to Software Design
Problems
Slide 2 www.edureka.co/design-patterns
At the end of this session, you will be able to:
Objectives
 Know what are Software Design Patterns
 Understand the need of Software Design Patterns
 Distribute Responsibility using Chain Of Responsibility Pattern
 Communicate among objects with Mediator Pattern
 Understand Observer Patterns
Slide 3 www.edureka.co/design-patterns
Software Design Patterns & Gang Of Four(GOF)
 Software design patterns describe relationship among classes to solve a general and repeatable design problem in a
specific context with proven solution
 Anyone who knows something about Software Design Patterns will certainly be aware of famous book “Elements of
Reusable Object-Oriented Software” written by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides
popularly knows as Gang Of Four(GOF)
This is the most popular book
written on Software Design
Patterns by Erich
Gamma, Richard Helm, Ralph
Johnson and John Vlissides,
known as Gang Of Four
Slide 4 www.edureka.co/design-patterns
Classification of Software Design Patterns
Software Design Patterns
Creational Design
Pattern
Factory Pattern
Object Pool Pattern
Singleton Pattern
Structural Design
Pattern
Adapter Pattern
Decorator Pattern
Composite Pattern
Behavioral Design Pattern
Chain of Responsibility
Pattern
Mediator Pattern
ObserverPattern
Concurrency Design Pattern
Reactor Pattern
Scheduler Pattern
Thread Pool Pattern
.
.
.
.
.
.
.
.
.
.
.
.
Slide 5 www.edureka.co/design-patterns
Importance of Design Patterns
 Just knowing a Programming Language is not enough to engineer a software application
 While building an application its important that we keep the future requirements and changes in mind
otherwise you will have to change the code that you had written earlier
 Building a large application is never easy, so its very important that you design it correctly and then start
coding the application
 Design Patterns provides efficient techniques to create a flexible application design
Slide 6Slide 6Slide 6 www.edureka.co/design-patterns
 Chain Of Responsibility pattern gives more than one object a chance to handle the request
 Sender of the request does not know which object in the chain will serve its request
 In Chain Of Responsibility pattern a chain of request handlers is maintained, a handler decides whether it can
handle the request or not, if not then it passes the request to next handler
Chain of Responsibility (COR)
Receiver 1 Receiver 2 Receiver 3
Request Request Request
Receiver N
Request
Reference to
Receiver 2
Reference to
Receiver 3
Chain of Receiver
Reference to
Receiver 4
Cannot
handle
Slide 7Slide 7Slide 7 www.edureka.co/design-patterns
1. Handler - defines an interface for handling requests
2. ConcreteHandler - handles the requests it is responsible for .If it can handle the request it does so, otherwise
it sends the request to its successor
3. Client - sends commands to the first object in the chain that may handle the command
Handler
+HandleRequest()
ConcreteHandler1
+HandleRequest()
ConcreteHandler2
+HandleRequest()
Client
Chain of Responsibility - UML Diagram
Slide 8Slide 8Slide 8 www.edureka.co/design-patterns
Problem Statement
 Customer support system is one of the implementation of this pattern, where users calls the help desk (L1 support)
and tell their problem
L1 Support L2 Support
Cannot handle
Problem
Statement
Resolved
Resolved
YES NO
YES NO
Request goes through multiple objects (handlers)
Slide 9Slide 9Slide 9 www.edureka.co/design-patterns
Solution
 Using Chain of responsibility simplifies the request object because it does not have to know the chain’s structure
and keep direct references to its members
 In this case, user simply interact with help desk and the request internally goes through multiple handlers
 User does not need to know about the different handlers
Slide 10Slide 10Slide 10 www.edureka.co/design-patterns
Implementing Chain of Responsibility
Client (user) will generate a
SupportRequest (a ticket)
All support levels will have to
inherit the support class and
implement the handleRequest()
Slide 11Slide 11Slide 11 www.edureka.co/design-patterns
Implementing Chain of Responsibility (Contd.)
Slide 12Slide 12Slide 12 www.edureka.co/design-patterns
Implementing Chain of Responsibility (Contd.)
Slide 13Slide 13Slide 13 www.edureka.co/design-patterns
Implementing Chain of Responsibility (Contd.)
Here we are creating chain of responsible
objects for handling the support request
according to user query
All the support requests will
first go to L1 support
Output
Slide 14Slide 14Slide 14 www.edureka.co/design-patterns
Other Uses Of Chain of Responsibility
One of the most important use of Chain Of Responsibility pattern is to implement filter mechanism
Here one filter process the request and then passes on to next filter in the chain, similarly next filter processes the
request and then passes onto next filter in chain
JavaEE API uses Chain Of Responsibility pattern to implement filter mechanism using the following doFilter() method
javax.servlet.Filter#doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
Request
Logging
Filter
Authentication
Filter
Servlet
JAX-WS also uses Chain Of Responsibility pattern to implement JWS Handler Framework, which allows
manipulation of SOAP messages
Slide 15Slide 15Slide 15 www.edureka.co/design-patterns
Mediator Pattern
 The mediator pattern promotes loose coupling of objects by removing the need for classes to communicate with
each other directly
 Instead, mediator objects are used to encapsulate and centralize the interactions between classes
 Mediator pattern simplifies communication in general when a
program contains large number of classes that interact
 Each class only needs to know how to pass messages to its
mediator, rather than to numerous colleagues
Slide 16Slide 16Slide 16 www.edureka.co/design-patterns
Mediator Pattern – UML Diagram
 Mediator - defines an interface for communicating with Colleague objects
 ConcreteMediator - knows the colleague classes and keep a reference to the colleague objects
 Colleague classes - keep a reference to its Mediator object
Mediator
ConcreteMediator ConcreteColleagueA ConcreteColleagueB
Colleague
Slide 17Slide 17Slide 17 www.edureka.co/design-patterns
Problem Statement
 Suppose you have to create a chat application where multiple users
can chat together
 Rather than each user sending the message directly to other users,
we can use mediator pattern to implement this design
Slide 18Slide 18Slide 18 www.edureka.co/design-patterns
Implementing Mediator Pattern
ChatMediator keeps the
reference of all the users
Slide 19Slide 19Slide 19 www.edureka.co/design-patterns
Implementing Mediator Pattern (Contd.)
A User doesn’t have any
reference to other users
Slide 20Slide 20Slide 20 www.edureka.co/design-patterns
Output
Implementing Mediator Pattern (Contd.)
Slide 21Slide 21Slide 21 www.edureka.co/design-patterns
ContactSelectorPanel
ContactDisplayPanel
ContactEditorPanel
1. All GUI applications consists of small components like
Windows, Panel etc.
2. Each Panel contains a group of GUI element
3. These panels have to co-ordinate among themselves
4. As in this application, whenever a contact is selected
from the drop down box, its details should be updated in
the ContactDisplayPanel and ContactEditorPanel
5. Rather then one panel having reference of all other
panels, we can use Mediator Pattern to simplify the
communication between panel objects
Implementing Mediator Pattern (Contd.)
Slide 22 www.edureka.co/design-patterns
Observer Pattern
Observer SubjectObserves
notify
Observer:
There is someone watching you
Slide 23 www.edureka.co/design-patterns
Reference : tutorialspoint.com
Observer Pattern
Slide 24 www.edureka.co/design-patterns
Conclusion
 Similarly there are other design patterns to solve majority of the problems that software designers encounter
during their day to day activities
 Design patterns compliments ones experience and helps them deliver wonderful and successful software designs
 They serve as common nomenclature or jargon that architects can easily communicate with others in software
industry
 Software design is no more an art. It’s a skill one can learn. And thanks to design patterns
Design Patterns : Solution to Software Design Problems

More Related Content

PDF
Design patterns 1july
PDF
Design Patterns : The Ultimate Blueprint for Software
PPTX
5 best practices in dev ops culture
PDF
Design Patterns - The Ultimate Blueprint for Software
PDF
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
PPTX
Learn why use selenium with 3 million dollar bugs!
PPTX
Introduction to AntiPatterns & CodeSmells
PDF
Develop Mobile App Using Android Lollipop
Design patterns 1july
Design Patterns : The Ultimate Blueprint for Software
5 best practices in dev ops culture
Design Patterns - The Ultimate Blueprint for Software
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Learn why use selenium with 3 million dollar bugs!
Introduction to AntiPatterns & CodeSmells
Develop Mobile App Using Android Lollipop

What's hot (20)

PDF
Automation Using Selenium Webdriver
PDF
Working with Advanced Views in Android
PDF
Getting Started With AngularJS
PDF
Using Android 5.0 Lollipop
PDF
Day In A Life Of A Node.js Developer
PDF
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
PDF
Implementing Web Services In Java
PDF
Learn How to Animate your Android App
PDF
Webinar: DevOps - Redefining your IT Strategy
PDF
Webinar: Microsoft .NET Framework : An IntelliSense Way of Web Development
PDF
Android development 1july
PPTX
Java/J2EE & SOA
PDF
Deep Dive into AngularJS Javascript Framework
PDF
Quality Assurance with Manual Testing
PPT
Beyond The MVC
PDF
What Is Selenium | Selenium Tutorial For Beginner | Selenium Training | Selen...
PDF
An overview of the architecture of electron.js
PDF
Introduction to Android Development
PDF
Animation And Testing In AngularJS
PPTX
How to build your own Android App -Step by Step Guide
Automation Using Selenium Webdriver
Working with Advanced Views in Android
Getting Started With AngularJS
Using Android 5.0 Lollipop
Day In A Life Of A Node.js Developer
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Implementing Web Services In Java
Learn How to Animate your Android App
Webinar: DevOps - Redefining your IT Strategy
Webinar: Microsoft .NET Framework : An IntelliSense Way of Web Development
Android development 1july
Java/J2EE & SOA
Deep Dive into AngularJS Javascript Framework
Quality Assurance with Manual Testing
Beyond The MVC
What Is Selenium | Selenium Tutorial For Beginner | Selenium Training | Selen...
An overview of the architecture of electron.js
Introduction to Android Development
Animation And Testing In AngularJS
How to build your own Android App -Step by Step Guide
Ad

Viewers also liked (20)

PDF
Some Wicked Problems of Software Design.
PPTX
5 things one must know about spark!
PDF
Software Architecture: Design Decisions
PPT
Epg design patterns
PPT
Design Issue(Reuse) in Software Engineering SE14
PDF
Ømq & Services @ Chartboost
PDF
Javascript Design Patterns
PPTX
Apache Storm
PDF
AngularJS : Superheroic JavaScript MVW Framework
PDF
GSoC: How to get prepared and write a good proposal (or how to start contribu...
PPTX
Agile 101
PPTX
Build reliable, traceable, distributed systems with ZeroMQ
PDF
DevOps is Going to Replace SDLC! Learn Why?
PPTX
The Important Book by Mrs. Henson's Class
PPTX
Simplifying Big Data ETL with Talend
PPTX
Basic tutorial how to use slideshare
PDF
Scalable JavaScript Design Patterns
PPTX
Ch6-Software Engineering 9
PPT
Stages of problem solving presentation
PDF
29 Essential AngularJS Interview Questions
Some Wicked Problems of Software Design.
5 things one must know about spark!
Software Architecture: Design Decisions
Epg design patterns
Design Issue(Reuse) in Software Engineering SE14
Ømq & Services @ Chartboost
Javascript Design Patterns
Apache Storm
AngularJS : Superheroic JavaScript MVW Framework
GSoC: How to get prepared and write a good proposal (or how to start contribu...
Agile 101
Build reliable, traceable, distributed systems with ZeroMQ
DevOps is Going to Replace SDLC! Learn Why?
The Important Book by Mrs. Henson's Class
Simplifying Big Data ETL with Talend
Basic tutorial how to use slideshare
Scalable JavaScript Design Patterns
Ch6-Software Engineering 9
Stages of problem solving presentation
29 Essential AngularJS Interview Questions
Ad

Similar to Design Patterns : Solution to Software Design Problems (20)

PDF
Webinar on Design Patterns titled 'Dive into Design Patterns'
PDF
Webinar: Design Patterns : Tailor-made solutions for Software Development
PDF
Modeling Object Oriented Applications by Using Dynamic Information for the I...
PPT
Design patterns
PPT
Design Pattern For C# Part 1
PDF
Software Engineering Past Papers Notes
PDF
3. ch 2-process model
PDF
6-180117160306. software engineering concepts
PDF
6. ch 5-understanding requirements
PDF
Module 4: UML In Action - Design Patterns
DOCX
Design pattern application
PDF
Test Bank for Systems Analysis and Design 8th Edition: Kendall
PPSX
Prophecy Of Design Patterns
PDF
Enjoy an instant PDF download of the complete Test Bank for Systems Analysis ...
PDF
Test Bank for Systems Analysis and Design 8th Edition: Kendall
PDF
Facade Design Pattern
PPT
Web engineering
PPTX
Lecture 1 uml with java implementation
PDF
IOSR Journals
PDF
Software Architecture - Quiz Questions
Webinar on Design Patterns titled 'Dive into Design Patterns'
Webinar: Design Patterns : Tailor-made solutions for Software Development
Modeling Object Oriented Applications by Using Dynamic Information for the I...
Design patterns
Design Pattern For C# Part 1
Software Engineering Past Papers Notes
3. ch 2-process model
6-180117160306. software engineering concepts
6. ch 5-understanding requirements
Module 4: UML In Action - Design Patterns
Design pattern application
Test Bank for Systems Analysis and Design 8th Edition: Kendall
Prophecy Of Design Patterns
Enjoy an instant PDF download of the complete Test Bank for Systems Analysis ...
Test Bank for Systems Analysis and Design 8th Edition: Kendall
Facade Design Pattern
Web engineering
Lecture 1 uml with java implementation
IOSR Journals
Software Architecture - Quiz Questions

More from Edureka! (20)

PDF
What to learn during the 21 days Lockdown | Edureka
PDF
Top 10 Dying Programming Languages in 2020 | Edureka
PDF
Top 5 Trending Business Intelligence Tools | Edureka
PDF
Tableau Tutorial for Data Science | Edureka
PDF
Python Programming Tutorial | Edureka
PDF
Top 5 PMP Certifications | Edureka
PDF
Top Maven Interview Questions in 2020 | Edureka
PDF
Linux Mint Tutorial | Edureka
PDF
How to Deploy Java Web App in AWS| Edureka
PDF
Importance of Digital Marketing | Edureka
PDF
RPA in 2020 | Edureka
PDF
Email Notifications in Jenkins | Edureka
PDF
EA Algorithm in Machine Learning | Edureka
PDF
Cognitive AI Tutorial | Edureka
PDF
AWS Cloud Practitioner Tutorial | Edureka
PDF
Blue Prism Top Interview Questions | Edureka
PDF
Big Data on AWS Tutorial | Edureka
PDF
A star algorithm | A* Algorithm in Artificial Intelligence | Edureka
PDF
Kubernetes Installation on Ubuntu | Edureka
PDF
Introduction to DevOps | Edureka
What to learn during the 21 days Lockdown | Edureka
Top 10 Dying Programming Languages in 2020 | Edureka
Top 5 Trending Business Intelligence Tools | Edureka
Tableau Tutorial for Data Science | Edureka
Python Programming Tutorial | Edureka
Top 5 PMP Certifications | Edureka
Top Maven Interview Questions in 2020 | Edureka
Linux Mint Tutorial | Edureka
How to Deploy Java Web App in AWS| Edureka
Importance of Digital Marketing | Edureka
RPA in 2020 | Edureka
Email Notifications in Jenkins | Edureka
EA Algorithm in Machine Learning | Edureka
Cognitive AI Tutorial | Edureka
AWS Cloud Practitioner Tutorial | Edureka
Blue Prism Top Interview Questions | Edureka
Big Data on AWS Tutorial | Edureka
A star algorithm | A* Algorithm in Artificial Intelligence | Edureka
Kubernetes Installation on Ubuntu | Edureka
Introduction to DevOps | Edureka

Recently uploaded (20)

PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
KodekX | Application Modernization Development
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Cloud computing and distributed systems.
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Machine learning based COVID-19 study performance prediction
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Unlocking AI with Model Context Protocol (MCP)
The Rise and Fall of 3GPP – Time for a Sabbatical?
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
KodekX | Application Modernization Development
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
The AUB Centre for AI in Media Proposal.docx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Cloud computing and distributed systems.
MIND Revenue Release Quarter 2 2025 Press Release
Reach Out and Touch Someone: Haptics and Empathic Computing
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
“AI and Expert System Decision Support & Business Intelligence Systems”
Review of recent advances in non-invasive hemoglobin estimation
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation_ Review paper, used for researhc scholars
Machine learning based COVID-19 study performance prediction
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

Design Patterns : Solution to Software Design Problems

  • 1. www.edureka.co/design-patterns View Design Patterns course details at www.edureka.co/design-patterns For Queries: Post on Twitter @edurekaIN: #askEdureka Post on Facebook /edurekaIN For more details please contact us: US : 1800 275 9730 (toll free) INDIA : +91 88808 62004 Email us : webinars@edureka.co Design Patterns : Solution to Software Design Problems
  • 2. Slide 2 www.edureka.co/design-patterns At the end of this session, you will be able to: Objectives  Know what are Software Design Patterns  Understand the need of Software Design Patterns  Distribute Responsibility using Chain Of Responsibility Pattern  Communicate among objects with Mediator Pattern  Understand Observer Patterns
  • 3. Slide 3 www.edureka.co/design-patterns Software Design Patterns & Gang Of Four(GOF)  Software design patterns describe relationship among classes to solve a general and repeatable design problem in a specific context with proven solution  Anyone who knows something about Software Design Patterns will certainly be aware of famous book “Elements of Reusable Object-Oriented Software” written by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides popularly knows as Gang Of Four(GOF) This is the most popular book written on Software Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, known as Gang Of Four
  • 4. Slide 4 www.edureka.co/design-patterns Classification of Software Design Patterns Software Design Patterns Creational Design Pattern Factory Pattern Object Pool Pattern Singleton Pattern Structural Design Pattern Adapter Pattern Decorator Pattern Composite Pattern Behavioral Design Pattern Chain of Responsibility Pattern Mediator Pattern ObserverPattern Concurrency Design Pattern Reactor Pattern Scheduler Pattern Thread Pool Pattern . . . . . . . . . . . .
  • 5. Slide 5 www.edureka.co/design-patterns Importance of Design Patterns  Just knowing a Programming Language is not enough to engineer a software application  While building an application its important that we keep the future requirements and changes in mind otherwise you will have to change the code that you had written earlier  Building a large application is never easy, so its very important that you design it correctly and then start coding the application  Design Patterns provides efficient techniques to create a flexible application design
  • 6. Slide 6Slide 6Slide 6 www.edureka.co/design-patterns  Chain Of Responsibility pattern gives more than one object a chance to handle the request  Sender of the request does not know which object in the chain will serve its request  In Chain Of Responsibility pattern a chain of request handlers is maintained, a handler decides whether it can handle the request or not, if not then it passes the request to next handler Chain of Responsibility (COR) Receiver 1 Receiver 2 Receiver 3 Request Request Request Receiver N Request Reference to Receiver 2 Reference to Receiver 3 Chain of Receiver Reference to Receiver 4 Cannot handle
  • 7. Slide 7Slide 7Slide 7 www.edureka.co/design-patterns 1. Handler - defines an interface for handling requests 2. ConcreteHandler - handles the requests it is responsible for .If it can handle the request it does so, otherwise it sends the request to its successor 3. Client - sends commands to the first object in the chain that may handle the command Handler +HandleRequest() ConcreteHandler1 +HandleRequest() ConcreteHandler2 +HandleRequest() Client Chain of Responsibility - UML Diagram
  • 8. Slide 8Slide 8Slide 8 www.edureka.co/design-patterns Problem Statement  Customer support system is one of the implementation of this pattern, where users calls the help desk (L1 support) and tell their problem L1 Support L2 Support Cannot handle Problem Statement Resolved Resolved YES NO YES NO Request goes through multiple objects (handlers)
  • 9. Slide 9Slide 9Slide 9 www.edureka.co/design-patterns Solution  Using Chain of responsibility simplifies the request object because it does not have to know the chain’s structure and keep direct references to its members  In this case, user simply interact with help desk and the request internally goes through multiple handlers  User does not need to know about the different handlers
  • 10. Slide 10Slide 10Slide 10 www.edureka.co/design-patterns Implementing Chain of Responsibility Client (user) will generate a SupportRequest (a ticket) All support levels will have to inherit the support class and implement the handleRequest()
  • 11. Slide 11Slide 11Slide 11 www.edureka.co/design-patterns Implementing Chain of Responsibility (Contd.)
  • 12. Slide 12Slide 12Slide 12 www.edureka.co/design-patterns Implementing Chain of Responsibility (Contd.)
  • 13. Slide 13Slide 13Slide 13 www.edureka.co/design-patterns Implementing Chain of Responsibility (Contd.) Here we are creating chain of responsible objects for handling the support request according to user query All the support requests will first go to L1 support Output
  • 14. Slide 14Slide 14Slide 14 www.edureka.co/design-patterns Other Uses Of Chain of Responsibility One of the most important use of Chain Of Responsibility pattern is to implement filter mechanism Here one filter process the request and then passes on to next filter in the chain, similarly next filter processes the request and then passes onto next filter in chain JavaEE API uses Chain Of Responsibility pattern to implement filter mechanism using the following doFilter() method javax.servlet.Filter#doFilter(ServletRequest request, ServletResponse response, FilterChain chain) Request Logging Filter Authentication Filter Servlet JAX-WS also uses Chain Of Responsibility pattern to implement JWS Handler Framework, which allows manipulation of SOAP messages
  • 15. Slide 15Slide 15Slide 15 www.edureka.co/design-patterns Mediator Pattern  The mediator pattern promotes loose coupling of objects by removing the need for classes to communicate with each other directly  Instead, mediator objects are used to encapsulate and centralize the interactions between classes  Mediator pattern simplifies communication in general when a program contains large number of classes that interact  Each class only needs to know how to pass messages to its mediator, rather than to numerous colleagues
  • 16. Slide 16Slide 16Slide 16 www.edureka.co/design-patterns Mediator Pattern – UML Diagram  Mediator - defines an interface for communicating with Colleague objects  ConcreteMediator - knows the colleague classes and keep a reference to the colleague objects  Colleague classes - keep a reference to its Mediator object Mediator ConcreteMediator ConcreteColleagueA ConcreteColleagueB Colleague
  • 17. Slide 17Slide 17Slide 17 www.edureka.co/design-patterns Problem Statement  Suppose you have to create a chat application where multiple users can chat together  Rather than each user sending the message directly to other users, we can use mediator pattern to implement this design
  • 18. Slide 18Slide 18Slide 18 www.edureka.co/design-patterns Implementing Mediator Pattern ChatMediator keeps the reference of all the users
  • 19. Slide 19Slide 19Slide 19 www.edureka.co/design-patterns Implementing Mediator Pattern (Contd.) A User doesn’t have any reference to other users
  • 20. Slide 20Slide 20Slide 20 www.edureka.co/design-patterns Output Implementing Mediator Pattern (Contd.)
  • 21. Slide 21Slide 21Slide 21 www.edureka.co/design-patterns ContactSelectorPanel ContactDisplayPanel ContactEditorPanel 1. All GUI applications consists of small components like Windows, Panel etc. 2. Each Panel contains a group of GUI element 3. These panels have to co-ordinate among themselves 4. As in this application, whenever a contact is selected from the drop down box, its details should be updated in the ContactDisplayPanel and ContactEditorPanel 5. Rather then one panel having reference of all other panels, we can use Mediator Pattern to simplify the communication between panel objects Implementing Mediator Pattern (Contd.)
  • 22. Slide 22 www.edureka.co/design-patterns Observer Pattern Observer SubjectObserves notify Observer: There is someone watching you
  • 23. Slide 23 www.edureka.co/design-patterns Reference : tutorialspoint.com Observer Pattern
  • 24. Slide 24 www.edureka.co/design-patterns Conclusion  Similarly there are other design patterns to solve majority of the problems that software designers encounter during their day to day activities  Design patterns compliments ones experience and helps them deliver wonderful and successful software designs  They serve as common nomenclature or jargon that architects can easily communicate with others in software industry  Software design is no more an art. It’s a skill one can learn. And thanks to design patterns