SlideShare uma empresa Scribd logo
1 de 46
About Patterns, Principles and Practices of Object Oriented Design Design Patterns 26/11/08 Author: Frederico Gonçalves
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
The Origins of Patterns ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
GoF – Object Oriented Patterns ,[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
Pattern’s Definitions ,[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
GoF Design Patterns ,[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves Design Patterns  are proven and generalized solutions to recurring problems in Object Oriented design
GoF Design Patterns ,[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
GoF Patterns Catalogue 26/11/08 Author: Frederico Gonçalves Purpose Creational Structural Behavioral Scope Class Factory Method Adapter (class)‏ Interpreter Template Method Object Abstract Factory Builder Prototype Singleton Adapter (Object)‏ Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
Principles Behind Patterns ,[object Object],[object Object],[object Object],[object Object]
Principles Behind Patterns ,[object Object],[object Object],[object Object],[object Object]
Principles Behind Patterns ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves New requirement: Knights and Orcs shall attack with a sword, Elfos shall use arrows.
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Overwrite attack
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves But also need to overwrite method with all implementation for future Characteres    Bad code reuse! Overwrite attack
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Create arrowAtack()
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves This leads to all characteres  Inheriting a behavior they may not use    Bad reuse! Create arrowAtack()
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Flexible design  to include new behaviours, apply them to different characters and change it at run time
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Strategy  captures design principles to create a flexible solution for changing algorithms problems
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Strategy  captures design principles to create a flexible solution for changing algorithms problems Apply the patterns with criteria,  extra complexity shall add value to your solution
Principles Behind Patterns ,[object Object],26/11/08 Author: Frederico Gonçalves
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
Why Patterns ,[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves Patterns  are proven solutions that can be reused to solve common problems without re-inventing the wheel.
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
The Design Problem ,[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Analysis  is the identification of essential system characteristics, concepts and capabilities to create an initial design
When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Analysis object model  is a composition of objects that reflect your business. However the solution is not optimized Analysis  is the identification of essential system characteristics, concepts and capabilities to create an initial design
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Identify your Design Criteria 26/11/08 Author: Frederico Gonçalves Design objectives and priorities  shall drive your design optimization. They are essential for a good design.
When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Design  is the selection of one particular solution which optimizes the set of design criteria with respect to the relative importance of each
When to Apply Patterns 26/11/08 Author: Frederico Gonçalves In the Design  we should optimize the Analysis Model according to design criteria and using design patterns Design  is the selection of one particular solution which optimizes the set of design criteria with respect to the relative importance of each
When to Apply Patterns 26/11/08 Author: Frederico Gonçalves In the Design  we should optimize the Analysis Model according to design criteria and using design patterns Patterns  help to identify less obvious abstractions (which are rarely found at first modelling) and the objects that can capture them Design  is the selection of one particular solution which optimizes the set of design criteria with respect to the relative importance of each
[object Object],[object Object],How to Apply Patterns 26/11/08 Author: Frederico Gonçalves
Selecting a Pattern ,[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves The best way to use patterns  is to load your brain with them and then recognize places in your designs and existing applications where to apply them.
How/When to Apply Patterns ,[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves Refactoring  your initial design to identify patterns and better solutions is a common practice.
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
Patterns in the Mobile Domain ,[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],MODPA Patterns 26/11/08 Author: Frederico Gonçalves
One-Function Pattern ,[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves New design patterns shall be used carefully,  they may refer to solutions that lack practical validation.
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
Conclusion ,[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
References ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],26/11/08 Author: Frederico Gonçalves
[object Object],Questions 26/11/08 Author: Frederico Gonçalves

Mais conteúdo relacionado

Mais procurados

Recursive Descent Parsing
Recursive Descent Parsing  Recursive Descent Parsing
Recursive Descent Parsing Md Tajul Islam
 
Software Project Estimation
Software Project EstimationSoftware Project Estimation
Software Project EstimationFrank Vogelezang
 
ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008William Piers
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰hagino 3000
 
Automated Program Repair Keynote talk
Automated Program Repair Keynote talkAutomated Program Repair Keynote talk
Automated Program Repair Keynote talkAbhik Roychoudhury
 
Word Embeddings, why the hype ?
Word Embeddings, why the hype ? Word Embeddings, why the hype ?
Word Embeddings, why the hype ? Hady Elsahar
 
The LaTeX Workshop: Typesetting Mathematics with LaTeX
The LaTeX Workshop: Typesetting Mathematics with LaTeXThe LaTeX Workshop: Typesetting Mathematics with LaTeX
The LaTeX Workshop: Typesetting Mathematics with LaTeXSuddhasheel GHOSH, PhD
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software ArchitectureRahimLotfi
 
Zero shot learning through cross-modal transfer
Zero shot learning through cross-modal transferZero shot learning through cross-modal transfer
Zero shot learning through cross-modal transferRoelof Pieters
 
Integración de servicios con ESB
Integración de servicios con ESBIntegración de servicios con ESB
Integración de servicios con ESBSoftware Guru
 
NLP tutorial at AIME 2020
NLP tutorial at AIME 2020NLP tutorial at AIME 2020
NLP tutorial at AIME 2020Rui Zhang
 
Discrete mathematic question answers
Discrete mathematic question answersDiscrete mathematic question answers
Discrete mathematic question answersSamet öztoprak
 
分布から見た線形モデル・GLM・GLMM
分布から見た線形モデル・GLM・GLMM分布から見た線形モデル・GLM・GLMM
分布から見た線形モデル・GLM・GLMM. .
 
CS571: Dependency Parsing
CS571: Dependency ParsingCS571: Dependency Parsing
CS571: Dependency ParsingJinho Choi
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software qualityUtkarsh Agarwal
 

Mais procurados (20)

Core java
Core java Core java
Core java
 
Recursive Descent Parsing
Recursive Descent Parsing  Recursive Descent Parsing
Recursive Descent Parsing
 
TOC 3 | Different Operations on DFA
TOC 3 | Different Operations on DFATOC 3 | Different Operations on DFA
TOC 3 | Different Operations on DFA
 
Software Project Estimation
Software Project EstimationSoftware Project Estimation
Software Project Estimation
 
Compiler unit 2&3
Compiler unit 2&3Compiler unit 2&3
Compiler unit 2&3
 
ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰
 
Java 8 Lambda and Streams
Java 8 Lambda and StreamsJava 8 Lambda and Streams
Java 8 Lambda and Streams
 
Automated Program Repair Keynote talk
Automated Program Repair Keynote talkAutomated Program Repair Keynote talk
Automated Program Repair Keynote talk
 
Word Embeddings, why the hype ?
Word Embeddings, why the hype ? Word Embeddings, why the hype ?
Word Embeddings, why the hype ?
 
The LaTeX Workshop: Typesetting Mathematics with LaTeX
The LaTeX Workshop: Typesetting Mathematics with LaTeXThe LaTeX Workshop: Typesetting Mathematics with LaTeX
The LaTeX Workshop: Typesetting Mathematics with LaTeX
 
Lex & yacc
Lex & yaccLex & yacc
Lex & yacc
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software Architecture
 
Zero shot learning through cross-modal transfer
Zero shot learning through cross-modal transferZero shot learning through cross-modal transfer
Zero shot learning through cross-modal transfer
 
Integración de servicios con ESB
Integración de servicios con ESBIntegración de servicios con ESB
Integración de servicios con ESB
 
NLP tutorial at AIME 2020
NLP tutorial at AIME 2020NLP tutorial at AIME 2020
NLP tutorial at AIME 2020
 
Discrete mathematic question answers
Discrete mathematic question answersDiscrete mathematic question answers
Discrete mathematic question answers
 
分布から見た線形モデル・GLM・GLMM
分布から見た線形モデル・GLM・GLMM分布から見た線形モデル・GLM・GLMM
分布から見た線形モデル・GLM・GLMM
 
CS571: Dependency Parsing
CS571: Dependency ParsingCS571: Dependency Parsing
CS571: Dependency Parsing
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
 

Semelhante a Design Patterns

Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patternsAmit Kabra
 
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
 
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
 
Software Patterns
Software PatternsSoftware Patterns
Software Patternskim.mens
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General IntroductionAsma CHERIF
 
Mit3033 software architecture
Mit3033  software architectureMit3033  software architecture
Mit3033 software architecturesmumbahelp
 
Design pattern & categories
Design pattern & categoriesDesign pattern & categories
Design pattern & categoriesHimanshu
 
HCI 3e - Ch 7: Design rules
HCI 3e - Ch 7:  Design rulesHCI 3e - Ch 7:  Design rules
HCI 3e - Ch 7: Design rulesAlan Dix
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architecturesMajong DevJfu
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxDrYogeshDeshmukh1
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Henry Muccini
 

Semelhante a Design Patterns (20)

Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patterns
 
Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-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)
Cs 1023 lec 9 design pattern (week 2)
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Unit iii design patterns 9
Unit iii design patterns 9Unit iii design patterns 9
Unit iii design patterns 9
 
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
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 
Mit3033 software architecture
Mit3033  software architectureMit3033  software architecture
Mit3033 software architecture
 
010821+presentation+oti.ppt
010821+presentation+oti.ppt010821+presentation+oti.ppt
010821+presentation+oti.ppt
 
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)
 
Design pattern & categories
Design pattern & categoriesDesign pattern & categories
Design pattern & categories
 
Modest Formalization of Software Design Patterns
Modest Formalization of Software Design PatternsModest Formalization of Software Design Patterns
Modest Formalization of Software Design Patterns
 
HCI 3e - Ch 7: Design rules
HCI 3e - Ch 7:  Design rulesHCI 3e - Ch 7:  Design rules
HCI 3e - Ch 7: Design rules
 
.Net design pattern
.Net design pattern.Net design pattern
.Net design pattern
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architectures
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptx
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013
 
"Paradigm Shifting" Presentation
"Paradigm Shifting" Presentation"Paradigm Shifting" Presentation
"Paradigm Shifting" Presentation
 
Patterns Overview
Patterns OverviewPatterns Overview
Patterns Overview
 

Último

Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfalexjohnson7307
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdfMuhammad Subhan
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewDianaGray10
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Hiroshi SHIBATA
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuidePixlogix Infotech
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Paige Cruz
 

Último (20)

Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 

Design Patterns

  • 1. About Patterns, Principles and Practices of Object Oriented Design Design Patterns 26/11/08 Author: Frederico Gonçalves
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. GoF Patterns Catalogue 26/11/08 Author: Frederico Gonçalves Purpose Creational Structural Behavioral Scope Class Factory Method Adapter (class)‏ Interpreter Template Method Object Abstract Factory Builder Prototype Singleton Adapter (Object)‏ Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves New requirement: Knights and Orcs shall attack with a sword, Elfos shall use arrows.
  • 16. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Overwrite attack
  • 17. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves But also need to overwrite method with all implementation for future Characteres  Bad code reuse! Overwrite attack
  • 18. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Create arrowAtack()
  • 19. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves This leads to all characteres Inheriting a behavior they may not use  Bad reuse! Create arrowAtack()
  • 20.
  • 21. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Flexible design to include new behaviours, apply them to different characters and change it at run time
  • 22. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Strategy captures design principles to create a flexible solution for changing algorithms problems
  • 23. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Strategy captures design principles to create a flexible solution for changing algorithms problems Apply the patterns with criteria, extra complexity shall add value to your solution
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Analysis is the identification of essential system characteristics, concepts and capabilities to create an initial design
  • 30. When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Analysis object model is a composition of objects that reflect your business. However the solution is not optimized Analysis is the identification of essential system characteristics, concepts and capabilities to create an initial design
  • 31.
  • 32. When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Design is the selection of one particular solution which optimizes the set of design criteria with respect to the relative importance of each
  • 33. When to Apply Patterns 26/11/08 Author: Frederico Gonçalves In the Design we should optimize the Analysis Model according to design criteria and using design patterns Design is the selection of one particular solution which optimizes the set of design criteria with respect to the relative importance of each
  • 34. When to Apply Patterns 26/11/08 Author: Frederico Gonçalves In the Design we should optimize the Analysis Model according to design criteria and using design patterns Patterns help to identify less obvious abstractions (which are rarely found at first modelling) and the objects that can capture them Design is the selection of one particular solution which optimizes the set of design criteria with respect to the relative importance of each
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.