SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Design Pattern For C# Part 1
Design Pattern For C# Part 1Design Pattern For C# Part 1
Design Pattern For C# Part 1Shahzad
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkbanq jdon
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnetRick van den Bosch
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewShahed Chowdhuri
 
Adapter Design Pattern
Adapter Design PatternAdapter Design Pattern
Adapter Design Patternguy_davis
 
AutomationML: A Model-Driven View
AutomationML: A Model-Driven ViewAutomationML: A Model-Driven View
AutomationML: A Model-Driven ViewLuca Berardinelli
 
Vert.x Event Driven Non Blocking Reactive Toolkit
Vert.x Event Driven Non Blocking Reactive ToolkitVert.x Event Driven Non Blocking Reactive Toolkit
Vert.x Event Driven Non Blocking Reactive ToolkitBrian S. Paskin
 
Prisma the ORM that node was waiting for
Prisma the ORM that node was waiting forPrisma the ORM that node was waiting for
Prisma the ORM that node was waiting forCommit University
 
소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)영기 김
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)Tom Kocjan
 
Design Patterns - 01 Introduction and Decorator Pattern
Design Patterns - 01 Introduction and Decorator PatternDesign Patterns - 01 Introduction and Decorator Pattern
Design Patterns - 01 Introduction and Decorator Patterneprafulla
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns pptAman Jain
 
Solid NodeJS with TypeScript, Jest & NestJS
Solid NodeJS with TypeScript, Jest & NestJSSolid NodeJS with TypeScript, Jest & NestJS
Solid NodeJS with TypeScript, Jest & NestJSRafael Casuso Romate
 

Tendances (20)

Design Pattern For C# Part 1
Design Pattern For C# Part 1Design Pattern For C# Part 1
Design Pattern For C# Part 1
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
 
Adapter Design Pattern
Adapter Design PatternAdapter Design Pattern
Adapter Design Pattern
 
Design patterns tutorials
Design patterns tutorialsDesign patterns tutorials
Design patterns tutorials
 
Mediator Design Pattern
Mediator Design PatternMediator Design Pattern
Mediator Design Pattern
 
AutomationML: A Model-Driven View
AutomationML: A Model-Driven ViewAutomationML: A Model-Driven View
AutomationML: A Model-Driven View
 
Design pattern-presentation
Design pattern-presentationDesign pattern-presentation
Design pattern-presentation
 
Code smell overview
Code smell overviewCode smell overview
Code smell overview
 
Vert.x Event Driven Non Blocking Reactive Toolkit
Vert.x Event Driven Non Blocking Reactive ToolkitVert.x Event Driven Non Blocking Reactive Toolkit
Vert.x Event Driven Non Blocking Reactive Toolkit
 
Prisma the ORM that node was waiting for
Prisma the ORM that node was waiting forPrisma the ORM that node was waiting for
Prisma the ORM that node was waiting for
 
소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
Design Patterns - 01 Introduction and Decorator Pattern
Design Patterns - 01 Introduction and Decorator PatternDesign Patterns - 01 Introduction and Decorator Pattern
Design Patterns - 01 Introduction and Decorator Pattern
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns ppt
 
Solid NodeJS with TypeScript, Jest & NestJS
Solid NodeJS with TypeScript, Jest & NestJSSolid NodeJS with TypeScript, Jest & NestJS
Solid NodeJS with TypeScript, Jest & NestJS
 

Similaire à Object Oriented Design Patterns Guide for Mobile Apps

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
 

Similaire à Object Oriented Design Patterns Guide for Mobile Apps (20)

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
 
Stoop 430-design patternsintro
Stoop 430-design patternsintroStoop 430-design patternsintro
Stoop 430-design patternsintro
 

Dernier

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 

Dernier (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 

Object Oriented Design Patterns Guide for Mobile Apps

  • 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.