SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
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

Mais conteúdo relacionado

Destaque

ysi-castaway-ctd-principles-of-operation
ysi-castaway-ctd-principles-of-operationysi-castaway-ctd-principles-of-operation
ysi-castaway-ctd-principles-of-operationHector Navarrete
 
NLA brandon mellett
NLA brandon mellettNLA brandon mellett
NLA brandon mellettbmellett
 
Using Student Life Funds
Using Student Life FundsUsing Student Life Funds
Using Student Life FundsMSCSA
 
Higher Ed in Review
Higher Ed in ReviewHigher Ed in Review
Higher Ed in ReviewMSCSA
 
Upcoming issues
Upcoming issuesUpcoming issues
Upcoming issuesMSCSA
 
Blues clues final auguat 28
Blues clues final auguat 28Blues clues final auguat 28
Blues clues final auguat 28Halliegrant3
 
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 @HistoriacomgilbertGilbert Patsayev
 
INSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACION
INSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACIONINSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACION
INSFRAESTRUCTURA DE LAS TECNOLOGIAS DE INFORMACIONEduardo Zambrano Lopez
 
Poffertjes
PoffertjesPoffertjes
Poffertjesbmellett
 
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 ExperienceMSCSA
 
3 h ein-mn
3 h ein-mn3 h ein-mn
3 h ein-mnMSCSA
 
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-abilityMSCSA
 
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
 

Destaque (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)
 

Semelhante a 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-2Ankit Dubey
 
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 2018Adi Bolboaca
 
Gof Design Pattern
Gof   Design PatternGof   Design Pattern
Gof Design Patternguesta4d934
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patternsAmit 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
 
Design Patterns
Design PatternsDesign Patterns
Design Patternsfrgo
 
Cse 6007 fall2012
Cse 6007 fall2012Cse 6007 fall2012
Cse 6007 fall2012rhrashel
 
Design Principles
Design PrinciplesDesign Principles
Design PrinciplesDavid Gelb
 
PATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design PatternsPATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design PatternsMichael 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 EnterpriseKenan Sevindik
 
Methods for Ontology Design Patterns reuse
Methods for Ontology Design Patterns reuseMethods for Ontology Design Patterns reuse
Methods for Ontology Design Patterns reuseValentina Presutti
 
Design Pattern Zoology
Design Pattern ZoologyDesign Pattern Zoology
Design Pattern ZoologyJosh Adell
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General IntroductionAsma CHERIF
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxDrYogeshDeshmukh1
 

Semelhante a 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
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
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 TerraformAndrey Devyatkin
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
+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...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

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 ”