SlideShare une entreprise Scribd logo
1  sur  24
www.edureka.co/design-patterns
View Design Patterns course details at www.edureka.co/design-patterns
For Queries during the session and class recording:
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 : sales@edureka.co
Design Patterns : Tailor-made Solutions for
Software Development
Slide 2 www.edureka.co/design-patterns
At the end of this session, you will be able to:
Objectives
 Understand need of Design Patterns
 Build flexible Design using Design Patterns
 Design UML Diagrams
 Code with AbstractFactory Pattern
 Use Observer Pattern & Mediator Pattern
Slide 3 www.edureka.co/design-patterns
Let’s Find a Pattern?
1 , 3, 5, __ , 9…..
B , D, H, __
Slide 4 www.edureka.co/design-patterns
We Found a Pattern !!
Patterns are easy to recognize and they
are everywhere and the beautiful thing is
that we come across them every day.
Patterns are recurring solution
to a standard problem
Slide 5 www.edureka.co/design-patterns
Software Development Programming Problems
What about software Development
Programming Problems? Do we have
a patterns for these also?
Yes. Design Patterns are recipes
against common programming
problems, so you don’t have to
reinvent the wheel again.
Slide 6 www.edureka.co/design-patterns
Software Design Patterns
Software design patterns describe classes and interacting objects used to solve a general and repeatable
design problems in a specific context with proven solution
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 7 www.edureka.co/design-patterns
Importance of Design Patterns
You can visualize the prevalence of Design Patterns, as most of the current software applications are being
developed using OOP paradigm
As most of the Design Patterns are proved around OOP paradigms, most of the programmers think that
both are related
Design Patterns have nothing to do with Object Oriented Programming
It is a tried and proven solution to commonly occurring programming problem
Slide 8 www.edureka.co/design-patterns
Use Case
Problem Statement
Consider an example of distributed system like Cement Factory, Pickle Factory or Cheese Factory where a raw
material has to go through different processes
In each process the material is processed under automated machines which keeps track of temperature, flow-
speed, ingredients of mixture
Data is captured using sensors and passed to Master control system
These machines operate in coordination, suppose if temperature of the mixture is less than required then,
Master control system will automatically send the increase temperature command to machine
So how can we build such an automated system ?
Slide 9 www.edureka.co/design-patterns
Use Case (Contd.)
Requirements
There are different entities monitoring the data generated by these sensors
Each entity takes its own decision on data and informs others as well at times
There is a master management control room from where commands to different entities may generate
Data from entities should also report back to master management control room
Slide 10 www.edureka.co/design-patterns
Master Management
Control System
Packaging
Entity Chemical Control
Entity
Catalyst Control
Entity
Sensors
Actuator
General Depiction
Slide 11 www.edureka.co/design-patterns
Procedural Program Pitfalls
Procedural Programmer would put all the functionality pertaining to Master management control
system into main function and the subsequent individual entity functions would go to subroutines
Challenge is procedural paradigm revolve around the functionality rather than data
This has to be replaced with Object Oriented paradigm to be adaptable to change
Does Object Oriented Programming solve all the problem ?
Procedural Programming
Main
Procedure A Procedure B Procedure X
Procedure Y Procedure Z
Slide 12 www.edureka.co/design-patterns
OOP Implementation…
Practicing Object Oriented Programming merely doesn’t solve all the problems
An OOP programmer will take Master Management Control unit as one object and subsequent individual
entities as different objects, while sensors and actuators as further different objects
And then our design revolves around designing communication channels among these and make them
interact to achieve the goal
Slide 13 www.edureka.co/design-patterns
Something is Missing …
It looks good that we have achieved a perfect OOP model
What if I would like
to increase my
factory or application
capacity?
What if I need to
modify the making
process in line with new
research results?
What if I would like to add
new features involving same
software elements ?( in the
case of any software
application).
Slide 14 www.edureka.co/design-patterns
Build it with Design Patterns
The model of this particular manufacturing entity without using design pattern may work at one
time, but it would definitely pose scalability issues in the future
Such kind of designs will hinder the growth. That’s where Design Patterns come into the picture
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 15 www.edureka.co/design-patterns
UML – Designs Made Easy
UML is a modelling language widely used to visualize the object oriented designs
UML makes it easy to visualize the software design
UML diagrams can be easily decoded and converted into most of the popular object oriented programing languages
Slide 16 www.edureka.co/design-patterns
UML Tools
UML was created and developed by Grady Booch at Rational Software which was later acquired by
IBM. While IBM have their proprietary tool called Rational Rhapsody, we do have lot of other
popular open source tools as well
AgroUML, Dia UMLet, StarUML are some of the free open source UML tools with a simple user
interface. They enable to create fast diagrams
Apart from that, there is a plug-in available for Eclipse as well
Another well known enterprise modelling software includes Microsoft Visual Studio.NET Enterprise
Architect, MagicDraw, IBM Rational
Slide 17 www.edureka.co/design-patterns
Abstract Factory Illustration
Slide 18 www.edureka.co/design-patterns
Observer Pattern
Observer SubjectObserves
notify
Observer:
There is someone watching you
Slide 19 www.edureka.co/design-patterns
Observer Pattern
Slide 20 www.edureka.co/design-patterns
It is not advisable to have multiple communication channels open between multiple control entities
It is neither good for debugging nor maintaining
Mediator pattern comes as a boon in this case
Mediator Pattern
Slide 21 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
Slide 22 www.edureka.co/design-patterns
Course Topics
 Module 1
» Introduction to Design Patterns
 Module 2
» Creational Design Patterns
 Module 3
» Structural Design Patterns
 Module 4
» Behavioral Patterns
Module 5
» Concurrency Design Patterns
Module 6
» Anti Patterns
Module 7
» Refactoring
Module 8
» Project and Retrospection
Slide 23
LIVE Online Class
Class Recording in LMS
24/7 Post Class Support
Module Wise Quiz
Project Work
Verifiable Certificate
www.edureka.co/design-patterns
How it Works?
Webinar: Design Patterns : Tailor-made solutions for Software Development

Contenu connexe

Tendances

Tendances (15)

Amp Up Your Visual Studio Productivity
Amp Up Your Visual Studio ProductivityAmp Up Your Visual Studio Productivity
Amp Up Your Visual Studio Productivity
 
Java Developer Resume | Edureka
Java Developer Resume | EdurekaJava Developer Resume | Edureka
Java Developer Resume | Edureka
 
LPU Summer Training Project Viva PPT - Modern Big Data Analysis with SQL Spec...
LPU Summer Training Project Viva PPT - Modern Big Data Analysis with SQL Spec...LPU Summer Training Project Viva PPT - Modern Big Data Analysis with SQL Spec...
LPU Summer Training Project Viva PPT - Modern Big Data Analysis with SQL Spec...
 
My Professional Profile
My Professional ProfileMy Professional Profile
My Professional Profile
 
Major File On web Development
Major File On web Development Major File On web Development
Major File On web Development
 
React Interview Questions and Answers | React Tutorial | React Redux Online T...
React Interview Questions and Answers | React Tutorial | React Redux Online T...React Interview Questions and Answers | React Tutorial | React Redux Online T...
React Interview Questions and Answers | React Tutorial | React Redux Online T...
 
Presentation on design pattern software project lll
 Presentation on design pattern  software project lll  Presentation on design pattern  software project lll
Presentation on design pattern software project lll
 
Microsoft Student Partners
Microsoft Student PartnersMicrosoft Student Partners
Microsoft Student Partners
 
Web Development and Internet Marketing Report prepared for Abundant Life Heal...
Web Development and Internet Marketing Report prepared for Abundant Life Heal...Web Development and Internet Marketing Report prepared for Abundant Life Heal...
Web Development and Internet Marketing Report prepared for Abundant Life Heal...
 
Web deveopment using React js and Node js with SQL.
Web deveopment using React js and Node js with SQL.Web deveopment using React js and Node js with SQL.
Web deveopment using React js and Node js with SQL.
 
Internship on web development
Internship on web developmentInternship on web development
Internship on web development
 
Internship report
Internship reportInternship report
Internship report
 
ATLUG Tack-It-On Modern Notes:Modern Domino
ATLUG Tack-It-On Modern Notes:Modern DominoATLUG Tack-It-On Modern Notes:Modern Domino
ATLUG Tack-It-On Modern Notes:Modern Domino
 
Mobile/Web App Development Project Report
Mobile/Web App Development Project ReportMobile/Web App Development Project Report
Mobile/Web App Development Project Report
 
Java live project training
Java live project trainingJava live project training
Java live project training
 

Similaire à Webinar: Design Patterns : Tailor-made solutions for Software Development

Design patterns 1july
Design patterns 1julyDesign patterns 1july
Design patterns 1july
Edureka!
 
Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementation
the_wumberlog
 

Similaire à Webinar: Design Patterns : Tailor-made solutions for Software Development (20)

Design Patterns : The Ultimate Blueprint for Software
Design Patterns : The Ultimate Blueprint for SoftwareDesign Patterns : The Ultimate Blueprint for Software
Design Patterns : The Ultimate Blueprint for Software
 
Design patterns 1july
Design patterns 1julyDesign patterns 1july
Design patterns 1july
 
Webinar on Design Patterns titled 'Dive into Design Patterns'
Webinar on Design Patterns titled 'Dive into Design Patterns'Webinar on Design Patterns titled 'Dive into Design Patterns'
Webinar on Design Patterns titled 'Dive into Design Patterns'
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementation
 
Discrete Event Simulation, CASE tool built using C#
Discrete Event Simulation, CASE tool built using C#Discrete Event Simulation, CASE tool built using C#
Discrete Event Simulation, CASE tool built using C#
 
Enterprise Architecture in Practice: from Datastore to APIs and Apps
Enterprise Architecture in Practice: from Datastore to APIs and AppsEnterprise Architecture in Practice: from Datastore to APIs and Apps
Enterprise Architecture in Practice: from Datastore to APIs and Apps
 
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and TricksIBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
 
SAC_Planning.pdf
SAC_Planning.pdfSAC_Planning.pdf
SAC_Planning.pdf
 
A report on mvc using the information
A report on mvc using the informationA report on mvc using the information
A report on mvc using the information
 
DEMO(Philosophy) & Product Success
DEMO(Philosophy) & Product SuccessDEMO(Philosophy) & Product Success
DEMO(Philosophy) & Product Success
 
Pega robotics best practices building solutions (1)
Pega robotics best practices   building solutions (1)Pega robotics best practices   building solutions (1)
Pega robotics best practices building solutions (1)
 
Pega Robotics Training @Phno: whatsapp @8142976573.
Pega Robotics Training @Phno: whatsapp @8142976573.Pega Robotics Training @Phno: whatsapp @8142976573.
Pega Robotics Training @Phno: whatsapp @8142976573.
 
EclipseCon '08 - Lessons Learned from an Enterprise RCP Application
EclipseCon '08 - Lessons Learned from an Enterprise RCP ApplicationEclipseCon '08 - Lessons Learned from an Enterprise RCP Application
EclipseCon '08 - Lessons Learned from an Enterprise RCP Application
 
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
 
MPP-UPNVJ
MPP-UPNVJMPP-UPNVJ
MPP-UPNVJ
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Design pattern application
Design pattern applicationDesign pattern application
Design pattern application
 
VIRTUAL LAB
VIRTUAL LABVIRTUAL LAB
VIRTUAL LAB
 
Implementing Machine Learning in the Real World
Implementing Machine Learning in the Real WorldImplementing Machine Learning in the Real World
Implementing Machine Learning in the Real World
 

Plus de Edureka!

Plus de Edureka! (20)

What to learn during the 21 days Lockdown | Edureka
What to learn during the 21 days Lockdown | EdurekaWhat to learn during the 21 days Lockdown | Edureka
What to learn during the 21 days Lockdown | Edureka
 
Top 10 Dying Programming Languages in 2020 | Edureka
Top 10 Dying Programming Languages in 2020 | EdurekaTop 10 Dying Programming Languages in 2020 | Edureka
Top 10 Dying Programming Languages in 2020 | Edureka
 
Top 5 Trending Business Intelligence Tools | Edureka
Top 5 Trending Business Intelligence Tools | EdurekaTop 5 Trending Business Intelligence Tools | Edureka
Top 5 Trending Business Intelligence Tools | Edureka
 
Python Programming Tutorial | Edureka
Python Programming Tutorial | EdurekaPython Programming Tutorial | Edureka
Python Programming Tutorial | Edureka
 
Top 5 PMP Certifications | Edureka
Top 5 PMP Certifications | EdurekaTop 5 PMP Certifications | Edureka
Top 5 PMP Certifications | Edureka
 
Top Maven Interview Questions in 2020 | Edureka
Top Maven Interview Questions in 2020 | EdurekaTop Maven Interview Questions in 2020 | Edureka
Top Maven Interview Questions in 2020 | Edureka
 
Linux Mint Tutorial | Edureka
Linux Mint Tutorial | EdurekaLinux Mint Tutorial | Edureka
Linux Mint Tutorial | Edureka
 
How to Deploy Java Web App in AWS| Edureka
How to Deploy Java Web App in AWS| EdurekaHow to Deploy Java Web App in AWS| Edureka
How to Deploy Java Web App in AWS| Edureka
 
Importance of Digital Marketing | Edureka
Importance of Digital Marketing | EdurekaImportance of Digital Marketing | Edureka
Importance of Digital Marketing | Edureka
 
RPA in 2020 | Edureka
RPA in 2020 | EdurekaRPA in 2020 | Edureka
RPA in 2020 | Edureka
 
Email Notifications in Jenkins | Edureka
Email Notifications in Jenkins | EdurekaEmail Notifications in Jenkins | Edureka
Email Notifications in Jenkins | Edureka
 
EA Algorithm in Machine Learning | Edureka
EA Algorithm in Machine Learning | EdurekaEA Algorithm in Machine Learning | Edureka
EA Algorithm in Machine Learning | Edureka
 
Cognitive AI Tutorial | Edureka
Cognitive AI Tutorial | EdurekaCognitive AI Tutorial | Edureka
Cognitive AI Tutorial | Edureka
 
AWS Cloud Practitioner Tutorial | Edureka
AWS Cloud Practitioner Tutorial | EdurekaAWS Cloud Practitioner Tutorial | Edureka
AWS Cloud Practitioner Tutorial | Edureka
 
Blue Prism Top Interview Questions | Edureka
Blue Prism Top Interview Questions | EdurekaBlue Prism Top Interview Questions | Edureka
Blue Prism Top Interview Questions | Edureka
 
Big Data on AWS Tutorial | Edureka
Big Data on AWS Tutorial | Edureka Big Data on AWS Tutorial | Edureka
Big Data on AWS Tutorial | Edureka
 
A star algorithm | A* Algorithm in Artificial Intelligence | Edureka
A star algorithm | A* Algorithm in Artificial Intelligence | EdurekaA star algorithm | A* Algorithm in Artificial Intelligence | Edureka
A star algorithm | A* Algorithm in Artificial Intelligence | Edureka
 
Kubernetes Installation on Ubuntu | Edureka
Kubernetes Installation on Ubuntu | EdurekaKubernetes Installation on Ubuntu | Edureka
Kubernetes Installation on Ubuntu | Edureka
 
Introduction to DevOps | Edureka
Introduction to DevOps | EdurekaIntroduction to DevOps | Edureka
Introduction to DevOps | Edureka
 
ITIL® Tutorial for Beginners | ITIL® Foundation Training | Edureka
ITIL® Tutorial for Beginners | ITIL® Foundation Training | EdurekaITIL® Tutorial for Beginners | ITIL® Foundation Training | Edureka
ITIL® Tutorial for Beginners | ITIL® Foundation Training | Edureka
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Webinar: Design Patterns : Tailor-made solutions for Software Development

  • 1. www.edureka.co/design-patterns View Design Patterns course details at www.edureka.co/design-patterns For Queries during the session and class recording: 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 : sales@edureka.co Design Patterns : Tailor-made Solutions for Software Development
  • 2. Slide 2 www.edureka.co/design-patterns At the end of this session, you will be able to: Objectives  Understand need of Design Patterns  Build flexible Design using Design Patterns  Design UML Diagrams  Code with AbstractFactory Pattern  Use Observer Pattern & Mediator Pattern
  • 3. Slide 3 www.edureka.co/design-patterns Let’s Find a Pattern? 1 , 3, 5, __ , 9….. B , D, H, __
  • 4. Slide 4 www.edureka.co/design-patterns We Found a Pattern !! Patterns are easy to recognize and they are everywhere and the beautiful thing is that we come across them every day. Patterns are recurring solution to a standard problem
  • 5. Slide 5 www.edureka.co/design-patterns Software Development Programming Problems What about software Development Programming Problems? Do we have a patterns for these also? Yes. Design Patterns are recipes against common programming problems, so you don’t have to reinvent the wheel again.
  • 6. Slide 6 www.edureka.co/design-patterns Software Design Patterns Software design patterns describe classes and interacting objects used to solve a general and repeatable design problems in a specific context with proven solution 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
  • 7. Slide 7 www.edureka.co/design-patterns Importance of Design Patterns You can visualize the prevalence of Design Patterns, as most of the current software applications are being developed using OOP paradigm As most of the Design Patterns are proved around OOP paradigms, most of the programmers think that both are related Design Patterns have nothing to do with Object Oriented Programming It is a tried and proven solution to commonly occurring programming problem
  • 8. Slide 8 www.edureka.co/design-patterns Use Case Problem Statement Consider an example of distributed system like Cement Factory, Pickle Factory or Cheese Factory where a raw material has to go through different processes In each process the material is processed under automated machines which keeps track of temperature, flow- speed, ingredients of mixture Data is captured using sensors and passed to Master control system These machines operate in coordination, suppose if temperature of the mixture is less than required then, Master control system will automatically send the increase temperature command to machine So how can we build such an automated system ?
  • 9. Slide 9 www.edureka.co/design-patterns Use Case (Contd.) Requirements There are different entities monitoring the data generated by these sensors Each entity takes its own decision on data and informs others as well at times There is a master management control room from where commands to different entities may generate Data from entities should also report back to master management control room
  • 10. Slide 10 www.edureka.co/design-patterns Master Management Control System Packaging Entity Chemical Control Entity Catalyst Control Entity Sensors Actuator General Depiction
  • 11. Slide 11 www.edureka.co/design-patterns Procedural Program Pitfalls Procedural Programmer would put all the functionality pertaining to Master management control system into main function and the subsequent individual entity functions would go to subroutines Challenge is procedural paradigm revolve around the functionality rather than data This has to be replaced with Object Oriented paradigm to be adaptable to change Does Object Oriented Programming solve all the problem ? Procedural Programming Main Procedure A Procedure B Procedure X Procedure Y Procedure Z
  • 12. Slide 12 www.edureka.co/design-patterns OOP Implementation… Practicing Object Oriented Programming merely doesn’t solve all the problems An OOP programmer will take Master Management Control unit as one object and subsequent individual entities as different objects, while sensors and actuators as further different objects And then our design revolves around designing communication channels among these and make them interact to achieve the goal
  • 13. Slide 13 www.edureka.co/design-patterns Something is Missing … It looks good that we have achieved a perfect OOP model What if I would like to increase my factory or application capacity? What if I need to modify the making process in line with new research results? What if I would like to add new features involving same software elements ?( in the case of any software application).
  • 14. Slide 14 www.edureka.co/design-patterns Build it with Design Patterns The model of this particular manufacturing entity without using design pattern may work at one time, but it would definitely pose scalability issues in the future Such kind of designs will hinder the growth. That’s where Design Patterns come into the picture 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
  • 15. Slide 15 www.edureka.co/design-patterns UML – Designs Made Easy UML is a modelling language widely used to visualize the object oriented designs UML makes it easy to visualize the software design UML diagrams can be easily decoded and converted into most of the popular object oriented programing languages
  • 16. Slide 16 www.edureka.co/design-patterns UML Tools UML was created and developed by Grady Booch at Rational Software which was later acquired by IBM. While IBM have their proprietary tool called Rational Rhapsody, we do have lot of other popular open source tools as well AgroUML, Dia UMLet, StarUML are some of the free open source UML tools with a simple user interface. They enable to create fast diagrams Apart from that, there is a plug-in available for Eclipse as well Another well known enterprise modelling software includes Microsoft Visual Studio.NET Enterprise Architect, MagicDraw, IBM Rational
  • 18. Slide 18 www.edureka.co/design-patterns Observer Pattern Observer SubjectObserves notify Observer: There is someone watching you
  • 20. Slide 20 www.edureka.co/design-patterns It is not advisable to have multiple communication channels open between multiple control entities It is neither good for debugging nor maintaining Mediator pattern comes as a boon in this case Mediator Pattern
  • 21. Slide 21 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
  • 22. Slide 22 www.edureka.co/design-patterns Course Topics  Module 1 » Introduction to Design Patterns  Module 2 » Creational Design Patterns  Module 3 » Structural Design Patterns  Module 4 » Behavioral Patterns Module 5 » Concurrency Design Patterns Module 6 » Anti Patterns Module 7 » Refactoring Module 8 » Project and Retrospection
  • 23. Slide 23 LIVE Online Class Class Recording in LMS 24/7 Post Class Support Module Wise Quiz Project Work Verifiable Certificate www.edureka.co/design-patterns How it Works?