SlideShare a Scribd company logo
1 of 15
Design Patterns in Java and .NET Tim Murphy Technical Specialist Mike Vogt Vice President of Architecture
Objective Show the usefulness of Design Patterns when developing applications and how they apply no matter what the platform.
Agenda History of patterns What are patterns Why are patterns important Explore 6 common patterns Anti-Patterns
History Of Patterns Gang Of Four POSA – Patterns of Software Architecture Patterns of Enterprise Application Architecture
What Are Patterns Pattern Name Problem Solution Consequences
Why Are Patterns Important Common vocabulary Repositories of common solutions
Factory Method Pattern Method for object creation Lets subclasses decide which classes to create
Decorator Pattern Attach additional responsibilities to an object dynamically Allows behavior to be added via “wrappers” Avoids extensive inheritance hierarchies cost() 	Whip cost()     Mocha cost() DarkRoast
Adapter Pattern Allows a system to use methods that do not match their interface
Visitor Pattern A way of separating an algorithm from an object structure it operates on. One can add new operations to existing object structures without modifying those structures <<interface>> CarElement + accept(CarElementVisitor v) Wheel Engine Body Car
Strategy Pattern Interchangeable algorithms
Composite Pattern Allows you to compose objects into tree structures to represent whole-part hierarchies. Lets clients treat individual objects and compositions of objects uniformly. <<interface>> Component + operation + add(Component c) + remove(Component c) + getChild(inti) Node Client Leaf Leaf Leaf Composite add,  remove,  getChild,  operation Leaf + operation()
Anit-Patterns One pattern to rule them all Loosey Goosey
ResourcesDesign Patterns: Elements of Reusable Object-Oriented Software – Erich Gamma, Richard Helm, Ralph Johnson, and John VlissidesHead First Design Patterns – Eric Freeman and Elisabeth FreemanDesign Patterns In C# - Steven John Metsker
Thank You!Blogs –geekswithblogs.net/tmurphyEmail -tmurphy@psclistens.commvogt@psclistens.comTwitter –@twmurph@mvogt99PSC’s websitewww.psclistens.com

More Related Content

What's hot

Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)
Nathaniel Palmer
 
Using togaf™ in government_enterprise_architecture_to_describe_the_business_a...
Using togaf™ in government_enterprise_architecture_to_describe_the_business_a...Using togaf™ in government_enterprise_architecture_to_describe_the_business_a...
Using togaf™ in government_enterprise_architecture_to_describe_the_business_a...
johnpolgreen
 

What's hot (19)

Enterprise system architecture togaf
Enterprise system architecture togafEnterprise system architecture togaf
Enterprise system architecture togaf
 
TOGAF Sample Matrices, Catalogs and Diagrams from the Open Group
TOGAF Sample Matrices, Catalogs and Diagrams from the Open GroupTOGAF Sample Matrices, Catalogs and Diagrams from the Open Group
TOGAF Sample Matrices, Catalogs and Diagrams from the Open Group
 
ITSM and TOGAF 9 v0 5
ITSM and TOGAF 9 v0 5ITSM and TOGAF 9 v0 5
ITSM and TOGAF 9 v0 5
 
TOGAF Vs E-Tom
TOGAF Vs E-TomTOGAF Vs E-Tom
TOGAF Vs E-Tom
 
Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)
 
TOGAF Reference Models
TOGAF Reference ModelsTOGAF Reference Models
TOGAF Reference Models
 
Overview of togaf
Overview of togafOverview of togaf
Overview of togaf
 
Togaf notes
Togaf notesTogaf notes
Togaf notes
 
A TOGAF Case Study
A TOGAF Case StudyA TOGAF Case Study
A TOGAF Case Study
 
A comparison of the top four enterprise
A comparison of the top four enterpriseA comparison of the top four enterprise
A comparison of the top four enterprise
 
Soa and togaf practical guide
Soa and togaf practical guideSoa and togaf practical guide
Soa and togaf practical guide
 
Togaf Version 9.1 Introduction Overview
Togaf Version 9.1 Introduction OverviewTogaf Version 9.1 Introduction Overview
Togaf Version 9.1 Introduction Overview
 
Introduction to Enterprise Architecture and TOGAF 9.1
Introduction to Enterprise Architecture and TOGAF 9.1Introduction to Enterprise Architecture and TOGAF 9.1
Introduction to Enterprise Architecture and TOGAF 9.1
 
Togaf Roadshow
Togaf RoadshowTogaf Roadshow
Togaf Roadshow
 
Togaf introduction and core concepts
Togaf introduction and core conceptsTogaf introduction and core concepts
Togaf introduction and core concepts
 
Togaf 9 introduction
Togaf 9 introductionTogaf 9 introduction
Togaf 9 introduction
 
EAPJ Vol IV July 2017
EAPJ Vol IV July 2017EAPJ Vol IV July 2017
EAPJ Vol IV July 2017
 
EA Workshop 1
EA Workshop 1EA Workshop 1
EA Workshop 1
 
Using togaf™ in government_enterprise_architecture_to_describe_the_business_a...
Using togaf™ in government_enterprise_architecture_to_describe_the_business_a...Using togaf™ in government_enterprise_architecture_to_describe_the_business_a...
Using togaf™ in government_enterprise_architecture_to_describe_the_business_a...
 

Viewers also liked

An integration methodology based on the Enterprise Architecture
An integration methodology based on the Enterprise ArchitectureAn integration methodology based on the Enterprise Architecture
An integration methodology based on the Enterprise Architecture
Miguel Pardal
 
AWS May Webinar Series - Getting Started with Amazon EMR
AWS May Webinar Series - Getting Started with Amazon EMRAWS May Webinar Series - Getting Started with Amazon EMR
AWS May Webinar Series - Getting Started with Amazon EMR
Amazon Web Services
 
Client computing evolution ppt11
Client computing evolution ppt11Client computing evolution ppt11
Client computing evolution ppt11
Tech_MX
 

Viewers also liked (20)

An integration methodology based on the Enterprise Architecture
An integration methodology based on the Enterprise ArchitectureAn integration methodology based on the Enterprise Architecture
An integration methodology based on the Enterprise Architecture
 
Enterprise Architecture
Enterprise Architecture Enterprise Architecture
Enterprise Architecture
 
PR-Strategie für den Lauftreff Decksteiner Weiher in Köln
PR-Strategie für den Lauftreff Decksteiner Weiher in KölnPR-Strategie für den Lauftreff Decksteiner Weiher in Köln
PR-Strategie für den Lauftreff Decksteiner Weiher in Köln
 
Python + Hive on AWS EMR で貧者のログサマリ
Python + Hive on AWS EMR で貧者のログサマリPython + Hive on AWS EMR で貧者のログサマリ
Python + Hive on AWS EMR で貧者のログサマリ
 
Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...
Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...
Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...
 
AWS May Webinar Series - Getting Started with Amazon EMR
AWS May Webinar Series - Getting Started with Amazon EMRAWS May Webinar Series - Getting Started with Amazon EMR
AWS May Webinar Series - Getting Started with Amazon EMR
 
Tune your Big Data Platform to Work at Scale: Taking Hadoop to the Next Level...
Tune your Big Data Platform to Work at Scale: Taking Hadoop to the Next Level...Tune your Big Data Platform to Work at Scale: Taking Hadoop to the Next Level...
Tune your Big Data Platform to Work at Scale: Taking Hadoop to the Next Level...
 
06 august meetup - enterprise integration architecture
06   august meetup - enterprise integration architecture06   august meetup - enterprise integration architecture
06 august meetup - enterprise integration architecture
 
Hadoop in the cloud with AWS' EMR
Hadoop in the cloud with AWS' EMRHadoop in the cloud with AWS' EMR
Hadoop in the cloud with AWS' EMR
 
Establishing a business case approach to a strategic initiative, project or s...
Establishing a business case approach to a strategic initiative, project or s...Establishing a business case approach to a strategic initiative, project or s...
Establishing a business case approach to a strategic initiative, project or s...
 
Integration Architecture Agile Enterprise Cag2010a
Integration Architecture Agile Enterprise Cag2010aIntegration Architecture Agile Enterprise Cag2010a
Integration Architecture Agile Enterprise Cag2010a
 
SOA - Creating True Business Agility
SOA - Creating True Business AgilitySOA - Creating True Business Agility
SOA - Creating True Business Agility
 
Masterclass Live: Amazon EMR
Masterclass Live: Amazon EMRMasterclass Live: Amazon EMR
Masterclass Live: Amazon EMR
 
Interactively Querying Large-scale Datasets on Amazon S3
Interactively Querying Large-scale Datasets on Amazon S3Interactively Querying Large-scale Datasets on Amazon S3
Interactively Querying Large-scale Datasets on Amazon S3
 
Containerization: The DevOps Revolution
Containerization: The DevOps Revolution Containerization: The DevOps Revolution
Containerization: The DevOps Revolution
 
Scaling your analytics with Amazon EMR
Scaling your analytics with Amazon EMRScaling your analytics with Amazon EMR
Scaling your analytics with Amazon EMR
 
Client computing evolution ppt11
Client computing evolution ppt11Client computing evolution ppt11
Client computing evolution ppt11
 
Strategic Initiative Optimization and Strategic Relationship Optimization
Strategic Initiative Optimization and Strategic Relationship OptimizationStrategic Initiative Optimization and Strategic Relationship Optimization
Strategic Initiative Optimization and Strategic Relationship Optimization
 
Intermediate/Compliance training Guide
Intermediate/Compliance training GuideIntermediate/Compliance training Guide
Intermediate/Compliance training Guide
 
Big Data and Analytics on AWS
Big Data and Analytics on AWS Big Data and Analytics on AWS
Big Data and Analytics on AWS
 

Similar to Chicago Information Technology Architects Group - Design Patterns

Bartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design PatternsBartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design Patterns
Jason Townsend, MBA
 
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
7 latest-dot-net-interview-questions
7  latest-dot-net-interview-questions7  latest-dot-net-interview-questions
7 latest-dot-net-interview-questions
sadiqkhanpathan
 
P Training Presentation
P Training PresentationP Training Presentation
P Training Presentation
Gaurav Tyagi
 

Similar to Chicago Information Technology Architects Group - Design Patterns (20)

Design Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The WorldDesign Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The World
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
 
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
 
Javascript Design Patterns
Javascript Design PatternsJavascript Design Patterns
Javascript Design Patterns
 
Bartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design PatternsBartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design Patterns
 
Introduction To Design Patterns
Introduction To Design PatternsIntroduction To Design Patterns
Introduction To Design Patterns
 
Patterns Overview
Patterns OverviewPatterns Overview
Patterns Overview
 
Evaluation of meta modeling tools for domain specific modeling language chnjl
Evaluation of meta modeling   tools for domain specific modeling language chnjlEvaluation of meta modeling   tools for domain specific modeling language chnjl
Evaluation of meta modeling tools for domain specific modeling language chnjl
 
Design pattern
Design patternDesign pattern
Design pattern
 
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
 
Innoslate, A Model-Based Systems Engineering Tool
Innoslate, A Model-Based Systems Engineering ToolInnoslate, A Model-Based Systems Engineering Tool
Innoslate, A Model-Based Systems Engineering Tool
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems Architectures
 
Getting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataGetting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and Data
 
Design patterns
Design patternsDesign patterns
Design patterns
 
7 latest-dot-net-interview-questions
7  latest-dot-net-interview-questions7  latest-dot-net-interview-questions
7 latest-dot-net-interview-questions
 
Mc0084 software project management & quality
Mc0084 software project management & qualityMc0084 software project management & quality
Mc0084 software project management & quality
 
2013 Lecture 5: AR Tools and Interaction
2013 Lecture 5: AR Tools and Interaction 2013 Lecture 5: AR Tools and Interaction
2013 Lecture 5: AR Tools and Interaction
 
P Training Presentation
P Training PresentationP Training Presentation
P Training Presentation
 
Software design and Architecture.pptx
Software design and Architecture.pptxSoftware design and Architecture.pptx
Software design and Architecture.pptx
 
Design pattern & categories
Design pattern & categoriesDesign pattern & categories
Design pattern & categories
 

Recently uploaded

+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@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

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
 
+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...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
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)
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
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
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

Chicago Information Technology Architects Group - Design Patterns

  • 1. Design Patterns in Java and .NET Tim Murphy Technical Specialist Mike Vogt Vice President of Architecture
  • 2. Objective Show the usefulness of Design Patterns when developing applications and how they apply no matter what the platform.
  • 3. Agenda History of patterns What are patterns Why are patterns important Explore 6 common patterns Anti-Patterns
  • 4. History Of Patterns Gang Of Four POSA – Patterns of Software Architecture Patterns of Enterprise Application Architecture
  • 5. What Are Patterns Pattern Name Problem Solution Consequences
  • 6. Why Are Patterns Important Common vocabulary Repositories of common solutions
  • 7. Factory Method Pattern Method for object creation Lets subclasses decide which classes to create
  • 8. Decorator Pattern Attach additional responsibilities to an object dynamically Allows behavior to be added via “wrappers” Avoids extensive inheritance hierarchies cost() Whip cost() Mocha cost() DarkRoast
  • 9. Adapter Pattern Allows a system to use methods that do not match their interface
  • 10. Visitor Pattern A way of separating an algorithm from an object structure it operates on. One can add new operations to existing object structures without modifying those structures <<interface>> CarElement + accept(CarElementVisitor v) Wheel Engine Body Car
  • 12. Composite Pattern Allows you to compose objects into tree structures to represent whole-part hierarchies. Lets clients treat individual objects and compositions of objects uniformly. <<interface>> Component + operation + add(Component c) + remove(Component c) + getChild(inti) Node Client Leaf Leaf Leaf Composite add, remove, getChild, operation Leaf + operation()
  • 13. Anit-Patterns One pattern to rule them all Loosey Goosey
  • 14. ResourcesDesign Patterns: Elements of Reusable Object-Oriented Software – Erich Gamma, Richard Helm, Ralph Johnson, and John VlissidesHead First Design Patterns – Eric Freeman and Elisabeth FreemanDesign Patterns In C# - Steven John Metsker
  • 15. Thank You!Blogs –geekswithblogs.net/tmurphyEmail -tmurphy@psclistens.commvogt@psclistens.comTwitter –@twmurph@mvogt99PSC’s websitewww.psclistens.com