SlideShare a Scribd company logo
Intro to Design Patterns
Funu Joel
Overview
★ What design patterns are.
★ Why they are important.
★ Some OO basics and Design Principles
★ Classifications of Design Patterns
★ Examples
What are Design Patterns?
Definitions
★ A pattern describes a problem which occurs over and
over again in our environment, and then describes the
core of the solution to that problem, in such a way that
you can use this solution a million times. (Alexander,
1977).
★ A design pattern is a general, reusable solution to a
common problem in software design.(gof, 1995).
Elements of a pattern design
★ The pattern name
○ It is used to describe a design problem, its solutions and
consequences in a word or two.
★ The problem
○ It describes when to apply the pattern.
★ The solution
○ It describes the elements that make up the design, their
relationships, responsibilities and collaborations
★ The consequences.
○ the results an tradeoffs of applying the pattern
Why are they important?
Benefits of design patterns
★ They provide proven solutions to software
development issues.
★ They make communications between
developers more efficient.
★ They make it easier to change and maintain
software.
Benefits of design patterns
★ They prevent from wasting your time hacking
your way into a solution.
★ They shift your level of thinking to higher
perspective.
★ They enable design efficient and scalable
applications.
OO basics and design principles
objected oriented basics
★ Abstraction
★ Encapsulation
★ Polymorphism
★ Inheritance
object oriented design principles
★ Separate what varies from what stays the
same .
★ Favor composition over inheritance.
★ Always program to interfaces not
implementations.
principles cont'd
★ Strive for loosely coupled design between
objects.
★ Classes should be open to extension but
closed for modification.(open-close principle)
Classifications of Design Patterns
Classifications
★ Creational Design Patterns
★ Behavioural Design Patterns
★ Structural Design Patterns
Creational Patterns
“These are design patterns that deal
with object creation mechanisms.”
Types of creational patterns
★ Factory method pattern
★ Abstract factory pattern
★ Builder pattern
★ Prototype pattern
★ Singleton pattern
Factory method pattern
“ ”
UML representation
Code representation
Behavioral Patterns
“are patterns that identify common
communication patterns between objects and
realize them to increase flexibility in these
communication.”
Types of behavioral patterns
★ Strategy
★ Observer
★ State
★ Command
★ Iterator
★ Mediator
★ Memento
★ Template method
★ Visitor
Strategy Pattern
“ ”
UML representation
Structural Patterns
“these are patterns that identify simple
ways to realize relationships between
entities.”
Types of structural patterns
★ Adapter
★ Bridge
★ Decorator
★ Composite
★ Facade
★ Flyweight
★ Proxy
Proxy Pattern
“allows you to provide an interface to
other objects by creating a wrapper
class as the proxy ”
UML representation

More Related Content

Viewers also liked

ysi-castaway-ctd-principles-of-operation
ysi-castaway-ctd-principles-of-operationysi-castaway-ctd-principles-of-operation
ysi-castaway-ctd-principles-of-operation
Hector Navarrete
 
Dari compresoare cu surub
Dari compresoare cu surubDari compresoare cu surub
Dari compresoare cu surub
ColinGroup Craiova
 
NLA brandon mellett
NLA brandon mellettNLA brandon mellett
NLA brandon mellett
bmellett
 
Using Student Life Funds
Using Student Life FundsUsing Student Life Funds
Using Student Life Funds
MSCSA
 
Curriculum cantabria
Curriculum cantabriaCurriculum cantabria
Curriculum cantabria
Luis Alberto Díaz Ruiz
 
Higher Ed in Review
Higher Ed in ReviewHigher Ed in Review
Higher Ed in Review
MSCSA
 
Upcoming issues
Upcoming issuesUpcoming issues
Upcoming issues
MSCSA
 
Blues clues final auguat 28
Blues clues final auguat 28Blues clues final auguat 28
Blues clues final auguat 28
Halliegrant3
 
Material para transmissão ao vivo do instagram @Historiacomgilbert
Material para transmissão ao vivo do instagram @HistoriacomgilbertMaterial para transmissão ao vivo do instagram @Historiacomgilbert
Material para transmissão ao vivo do instagram @Historiacomgilbert
Gilbert Patsayev
 
INSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACION
INSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACIONINSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACION
INSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACION
Eduardo Zambrano Lopez
 
Arfian fuadi
Arfian fuadiArfian fuadi
Arfian fuadi
Cahyo Darujati
 
Poffertjes
PoffertjesPoffertjes
Poffertjes
bmellett
 
Scholarships: Part of a Complete College Experience
Scholarships: Part of a Complete College ExperienceScholarships: Part of a Complete College Experience
Scholarships: Part of a Complete College Experience
MSCSA
 
3 h ein-mn
3 h ein-mn3 h ein-mn
3 h ein-mn
MSCSA
 
LinkedIn Simplified: Grow Your Visibility, Credibility, and Hire-ability
LinkedIn Simplified: Grow Your Visibility, Credibility, and Hire-abilityLinkedIn Simplified: Grow Your Visibility, Credibility, and Hire-ability
LinkedIn Simplified: Grow Your Visibility, Credibility, and Hire-ability
MSCSA
 
Bitcoins (by Mawuli Adzoe at DevCongress 2013)
Bitcoins (by Mawuli Adzoe at DevCongress 2013)Bitcoins (by Mawuli Adzoe at DevCongress 2013)
Bitcoins (by Mawuli Adzoe at DevCongress 2013)
DevCongress
 

Viewers also liked (16)

ysi-castaway-ctd-principles-of-operation
ysi-castaway-ctd-principles-of-operationysi-castaway-ctd-principles-of-operation
ysi-castaway-ctd-principles-of-operation
 
Dari compresoare cu surub
Dari compresoare cu surubDari compresoare cu surub
Dari compresoare cu surub
 
NLA brandon mellett
NLA brandon mellettNLA brandon mellett
NLA brandon mellett
 
Using Student Life Funds
Using Student Life FundsUsing Student Life Funds
Using Student Life Funds
 
Curriculum cantabria
Curriculum cantabriaCurriculum cantabria
Curriculum cantabria
 
Higher Ed in Review
Higher Ed in ReviewHigher Ed in Review
Higher Ed in Review
 
Upcoming issues
Upcoming issuesUpcoming issues
Upcoming issues
 
Blues clues final auguat 28
Blues clues final auguat 28Blues clues final auguat 28
Blues clues final auguat 28
 
Material para transmissão ao vivo do instagram @Historiacomgilbert
Material para transmissão ao vivo do instagram @HistoriacomgilbertMaterial para transmissão ao vivo do instagram @Historiacomgilbert
Material para transmissão ao vivo do instagram @Historiacomgilbert
 
INSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACION
INSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACIONINSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACION
INSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACION
 
Arfian fuadi
Arfian fuadiArfian fuadi
Arfian fuadi
 
Poffertjes
PoffertjesPoffertjes
Poffertjes
 
Scholarships: Part of a Complete College Experience
Scholarships: Part of a Complete College ExperienceScholarships: Part of a Complete College Experience
Scholarships: Part of a Complete College Experience
 
3 h ein-mn
3 h ein-mn3 h ein-mn
3 h ein-mn
 
LinkedIn Simplified: Grow Your Visibility, Credibility, and Hire-ability
LinkedIn Simplified: Grow Your Visibility, Credibility, and Hire-abilityLinkedIn Simplified: Grow Your Visibility, Credibility, and Hire-ability
LinkedIn Simplified: Grow Your Visibility, Credibility, and Hire-ability
 
Bitcoins (by Mawuli Adzoe at DevCongress 2013)
Bitcoins (by Mawuli Adzoe at DevCongress 2013)Bitcoins (by Mawuli Adzoe at DevCongress 2013)
Bitcoins (by Mawuli Adzoe at DevCongress 2013)
 

Similar to Design Patterns (by Joel Funu at DevCongress 2013)

Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-2
Ankit Dubey
 
Unit iii design patterns 9
Unit iii design patterns 9Unit iii design patterns 9
Unit iii design patterns 9
kiruthikamurugesan2628
 
Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)
stanbridge
 
Unified Modeling Language (UML)
Unified Modeling Language (UML)Unified Modeling Language (UML)
Unified Modeling Language (UML)
ppd1961
 
Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018
Adi Bolboaca
 
Gof Design Pattern
Gof   Design PatternGof   Design Pattern
Gof Design Pattern
guesta4d934
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patterns
Amit Kabra
 
Solid Principles Of Design (Design Series 01)
Solid Principles Of Design (Design Series 01)Solid Principles Of Design (Design Series 01)
Solid Principles Of Design (Design Series 01)
Heartin Jacob
 
CBD.pptx
CBD.pptxCBD.pptx
010821+presentation+oti.ppt
010821+presentation+oti.ppt010821+presentation+oti.ppt
010821+presentation+oti.ppt
Yann-Gaël Guéhéneuc
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
frgo
 
Design Patterns.ppt
Design Patterns.pptDesign Patterns.ppt
Design Patterns.ppt
TanishaKochak
 
Cse 6007 fall2012
Cse 6007 fall2012Cse 6007 fall2012
Cse 6007 fall2012
rhrashel
 
Design Principles
Design PrinciplesDesign Principles
Design Principles
David Gelb
 
PATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design PatternsPATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design Patterns
Michael Heron
 
Contemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With EnterpriseContemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With Enterprise
Kenan Sevindik
 
Methods for Ontology Design Patterns reuse
Methods for Ontology Design Patterns reuseMethods for Ontology Design Patterns reuse
Methods for Ontology Design Patterns reuse
Valentina Presutti
 
Design Pattern Zoology
Design Pattern ZoologyDesign Pattern Zoology
Design Pattern Zoology
Josh Adell
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
Asma CHERIF
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptx
DrYogeshDeshmukh1
 

Similar to Design Patterns (by Joel Funu at DevCongress 2013) (20)

Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-2
 
Unit iii design patterns 9
Unit iii design patterns 9Unit iii design patterns 9
Unit iii design patterns 9
 
Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)
 
Unified Modeling Language (UML)
Unified Modeling Language (UML)Unified Modeling Language (UML)
Unified Modeling Language (UML)
 
Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018
 
Gof Design Pattern
Gof   Design PatternGof   Design Pattern
Gof Design Pattern
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patterns
 
Solid Principles Of Design (Design Series 01)
Solid Principles Of Design (Design Series 01)Solid Principles Of Design (Design Series 01)
Solid Principles Of Design (Design Series 01)
 
CBD.pptx
CBD.pptxCBD.pptx
CBD.pptx
 
010821+presentation+oti.ppt
010821+presentation+oti.ppt010821+presentation+oti.ppt
010821+presentation+oti.ppt
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Design Patterns.ppt
Design Patterns.pptDesign Patterns.ppt
Design Patterns.ppt
 
Cse 6007 fall2012
Cse 6007 fall2012Cse 6007 fall2012
Cse 6007 fall2012
 
Design Principles
Design PrinciplesDesign Principles
Design Principles
 
PATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design PatternsPATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design Patterns
 
Contemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With EnterpriseContemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With Enterprise
 
Methods for Ontology Design Patterns reuse
Methods for Ontology Design Patterns reuseMethods for Ontology Design Patterns reuse
Methods for Ontology Design Patterns reuse
 
Design Pattern Zoology
Design Pattern ZoologyDesign Pattern Zoology
Design Pattern Zoology
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptx
 

Recently uploaded

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 

Recently uploaded (20)

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 

Design Patterns (by Joel Funu at DevCongress 2013)

  • 1. Intro to Design Patterns Funu Joel
  • 2. Overview ★ What design patterns are. ★ Why they are important. ★ Some OO basics and Design Principles ★ Classifications of Design Patterns ★ Examples
  • 3. What are Design Patterns?
  • 4. Definitions ★ A pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times. (Alexander, 1977). ★ A design pattern is a general, reusable solution to a common problem in software design.(gof, 1995).
  • 5. Elements of a pattern design ★ The pattern name ○ It is used to describe a design problem, its solutions and consequences in a word or two. ★ The problem ○ It describes when to apply the pattern. ★ The solution ○ It describes the elements that make up the design, their relationships, responsibilities and collaborations ★ The consequences. ○ the results an tradeoffs of applying the pattern
  • 6. Why are they important?
  • 7. Benefits of design patterns ★ They provide proven solutions to software development issues. ★ They make communications between developers more efficient. ★ They make it easier to change and maintain software.
  • 8. Benefits of design patterns ★ They prevent from wasting your time hacking your way into a solution. ★ They shift your level of thinking to higher perspective. ★ They enable design efficient and scalable applications.
  • 9. OO basics and design principles
  • 10. objected oriented basics ★ Abstraction ★ Encapsulation ★ Polymorphism ★ Inheritance
  • 11. object oriented design principles ★ Separate what varies from what stays the same . ★ Favor composition over inheritance. ★ Always program to interfaces not implementations.
  • 12. principles cont'd ★ Strive for loosely coupled design between objects. ★ Classes should be open to extension but closed for modification.(open-close principle)
  • 14. Classifications ★ Creational Design Patterns ★ Behavioural Design Patterns ★ Structural Design Patterns
  • 15. Creational Patterns “These are design patterns that deal with object creation mechanisms.”
  • 16. Types of creational patterns ★ Factory method pattern ★ Abstract factory pattern ★ Builder pattern ★ Prototype pattern ★ Singleton pattern
  • 20. Behavioral Patterns “are patterns that identify common communication patterns between objects and realize them to increase flexibility in these communication.”
  • 21. Types of behavioral patterns ★ Strategy ★ Observer ★ State ★ Command ★ Iterator ★ Mediator ★ Memento ★ Template method ★ Visitor
  • 24. Structural Patterns “these are patterns that identify simple ways to realize relationships between entities.”
  • 25. Types of structural patterns ★ Adapter ★ Bridge ★ Decorator ★ Composite ★ Facade ★ Flyweight ★ Proxy
  • 26. Proxy Pattern “allows you to provide an interface to other objects by creating a wrapper class as the proxy ”