SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Design Patterns
Design PatternsDesign Patterns
Design Patternssoms_1
 
Software prototyping
Software prototyping  Software prototyping
Software prototyping Huda Seyam
 
Learn Entity Framework in a day with Code First, Model First and Database First
Learn Entity Framework in a day with Code First, Model First and Database FirstLearn Entity Framework in a day with Code First, Model First and Database First
Learn Entity Framework in a day with Code First, Model First and Database FirstJibran Rasheed Khan
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design QuicklyMariam Hakobyan
 
Introduction to .NET Core
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET CoreMarco Parenzan
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns pptAman Jain
 
Design Pattern For C# Part 1
Design Pattern For C# Part 1Design Pattern For C# Part 1
Design Pattern For C# Part 1Shahzad
 
Java Design Patterns Tutorial | Edureka
Java Design Patterns Tutorial | EdurekaJava Design Patterns Tutorial | Edureka
Java Design Patterns Tutorial | EdurekaEdureka!
 
Object Modeling Techniques
Object Modeling TechniquesObject Modeling Techniques
Object Modeling TechniquesShilpa Wadhwani
 
The Object Model
The Object Model  The Object Model
The Object Model yndaravind
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJSKnoldus Inc.
 

What's hot (20)

Grasp
GraspGrasp
Grasp
 
Mediator pattern
Mediator patternMediator pattern
Mediator pattern
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Software prototyping
Software prototyping  Software prototyping
Software prototyping
 
UML
UMLUML
UML
 
Uml
UmlUml
Uml
 
Learn Entity Framework in a day with Code First, Model First and Database First
Learn Entity Framework in a day with Code First, Model First and Database FirstLearn Entity Framework in a day with Code First, Model First and Database First
Learn Entity Framework in a day with Code First, Model First and Database First
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design Quickly
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Introduction to .NET Core
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET Core
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns ppt
 
Design Pattern For C# Part 1
Design Pattern For C# Part 1Design Pattern For C# Part 1
Design Pattern For C# Part 1
 
Java Design Patterns Tutorial | Edureka
Java Design Patterns Tutorial | EdurekaJava Design Patterns Tutorial | Edureka
Java Design Patterns Tutorial | Edureka
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
 
Object Modeling Techniques
Object Modeling TechniquesObject Modeling Techniques
Object Modeling Techniques
 
Software process
Software processSoftware process
Software process
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
 
The Object Model
The Object Model  The Object Model
The Object Model
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJS
 

Similar to 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
 

Similar to 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
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

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.