0
Introduction to Design PatternsIntroduction to Design Patterns
João Miguel Pereira
http://jpereira.eu
M 2012May 2012
Intro...
Introduction to Design PatternsIntroduction to Design Patterns
• What is a patternWhat is a pattern
• Architecture Pattern...
Introduction to Design PatternsIntroduction to Design Patterns
• What is a PatternWhat is a Pattern
• Architecture Pattern...
What is a PatternWhat is a Pattern
“It can be a template or model which can be used to generate things 
or parts of a thin...
What is a Pattern
In construction of towns and building
"Each pattern describes a problem which occurs over and over again...
What is a Pattern
In construction of Software
“Our solutions are expressed in terms of objects and interfaces instead of w...
What is a Pattern
Essential Elements of a Pattern
• Name  Use it in our design vocabularyName  Use it in our design voca...
What is a pattern
Abstraction in Software Design Patterns
Abstract
Architecture patterns
FocusFocus
Design patterns
Detail...
Introduction to Design PatternsIntroduction to Design Patterns
• What is a Design PatternWhat is a Design Pattern
• Archit...
Architecture PatternsArchitecture Patterns
• A fundamental structural organization schemaA fundamental structural organiza...
Architecture PatternsArchitecture Patterns
• Architecture pattern example: LayersArchitecture pattern example: Layers
– He...
Architecture PatternsArchitecture Patterns
• Architecture pattern example: Pipes & FiltersArchitecture pattern example: Pi...
Architecture PatternsArchitecture Patterns
• Architecture pattern example: Blackboardc tectu e patte e a p e: ac boa d
– S...
Architecture PatternsArchitecture Patterns
• Architecture pattern example: Model ViewArchitecture pattern example: Model V...
Architecture PatternsArchitecture Patterns
• Architecture pattern example: Model ViewArchitecture pattern example: Model V...
Architecture PatternsArchitecture Patterns
• Architecture pattern example: Model ViewArchitecture pattern example: Model V...
Architecture PatternsArchitecture Patterns
• Architecture pattern example: Model ViewArchitecture pattern example: Model V...
Architecture PatternsArchitecture Patterns
• Architecture pattern example: Model View Controllerp p
– Many interpretations...
Architecture PatternsArchitecture Patterns
• More Architecture Patterns:More Architecture Patterns:
– Patterns of Enterpri...
Introduction to Design PatternsIntroduction to Design Patterns
• What is a Design PatternWhat is a Design Pattern
• Archit...
Design patternDesign pattern
Framework for thinking and 
d i i OO !designing OO programs!
Reusable knowledge in SoftwareRe...
Design patternDesign pattern
Java Frameworks for OOKnowledge Framework Java Frameworks for OO 
Development
Knowledge Frame...
Design Patterns
The Book
http://amzn.to/book_DPEROOS 
Introduction to Design Patterns by João Miguel Pereira is licensed u...
Upcoming SlideShare
Loading in...5
×

Introduction to Design Patterns

396

Published on

This is the introduction to design patterns, part of my course on Object Oriented Programming.

1 Comment
0 Likes
Statistics
Notes
  • Len Bass, Paul Clements, Rick Kazman, ''Software Architecture in Practice', Second Edition, Pearson
    Give the PPT of this book
    on email : sanjaycom_engg@rediffmail.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
396
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Introduction to Design Patterns"

  1. 1. Introduction to Design PatternsIntroduction to Design Patterns João Miguel Pereira http://jpereira.eu M 2012May 2012 Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License.
  2. 2. Introduction to Design PatternsIntroduction to Design Patterns • What is a patternWhat is a pattern • Architecture Patterns i• Design Patterns Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 2
  3. 3. Introduction to Design PatternsIntroduction to Design Patterns • What is a PatternWhat is a Pattern • Architecture Patterns i• Design Patterns Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 3
  4. 4. What is a PatternWhat is a Pattern “It can be a template or model which can be used to generate things  or parts of a thing, especially if the things that are created have  enough in common for the underlying pattern to be inferred, in which enough in common for the underlying pattern to be inferred, in which case the things are said to exhibit the unique pattern.“ ‐ http://en.wikipedia.org/wiki/Pattern Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 4
  5. 5. What is a Pattern In construction of towns and building "Each pattern describes a problem which occurs over and over again in our  environment, and then describes the core of the solution to that problem, in such a  h hi l i illi i i h d i i hway that you can use this solution a million times over, without ever doing it the  same way twice” ‐‐ Christopher Alexander, Sara Ishikawa, Murray Silverstein, Max Jacobson, Ingrid Fiksdahl‐King,  and Shlomo Angel. A Pattern Language. Oxford University Press, New York, 1977.  fl lfl lInfluential in  Software design  patterns Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 5 Christopher Alexander
  6. 6. What is a Pattern In construction of Software “Our solutions are expressed in terms of objects and interfaces instead of walls and  doors, but at the core of both kinds of patterns is a solution to a problem in a doo s, but at t e co e o bot ds o patte s s a so ut o to a p ob e a context.” – Eric Gamma, et.al. Design patterns : elements of reusable object‐oriented software Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 6 Christopher Alexander Eric Gamma
  7. 7. What is a Pattern Essential Elements of a Pattern • Name  Use it in our design vocabularyName  Use it in our design vocabulary • Problem  Explain the problem and the context. S l i• Solution  Describes the elements that make up the  design, their relationships, responsibilities, and  collaborationscollaborations.  • Consequences  The results and trade‐offs of applying  the patternthe pattern . Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 7 Christopher Alexander
  8. 8. What is a pattern Abstraction in Software Design Patterns Abstract Architecture patterns FocusFocus Design patterns Details Focus Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 8
  9. 9. Introduction to Design PatternsIntroduction to Design Patterns • What is a Design PatternWhat is a Design Pattern • Architecture Patterns i• Design Patterns Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 9
  10. 10. Architecture PatternsArchitecture Patterns • A fundamental structural organization schemaA fundamental structural organization schema  for software systems. • Provides predefined subsystems and their• Provides predefined subsystems and their  responsibilities Gi l f i i h l i hi• Give rules for organizing the relationships  between these sub systems Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 10
  11. 11. Architecture PatternsArchitecture Patterns • Architecture pattern example: LayersArchitecture pattern example: Layers – Helps to structure applications that can be  decomposed into groups of subtasks in whichdecomposed into groups of subtasks in which  each group of subtasks is at a particular level of  abstraction Presentation Layer Domain/Business Layer Data Layer Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 11 y
  12. 12. Architecture PatternsArchitecture Patterns • Architecture pattern example: Pipes & FiltersArchitecture pattern example: Pipes & Filters – Help to structure systems that process a stream of  datadata.  JSON Filter Data  Extractor  Filter Data  Normalizer Data  Storage  Filter Internet Publisher  Filter JSON Filter XML Filter HTML Filter Data Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 12 ata
  13. 13. Architecture PatternsArchitecture Patterns • Architecture pattern example: Blackboardc tectu e patte e a p e: ac boa d – Several specialized subsystems assemble their  knowledge to build a possibly partial or approximate  l tisolution. – Useful for problems for which no deterministic  solution strategies are known.g CRM  S t Inventory S t Financial System Delivery System System SystemSystem Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 13 Enterprise Service Bus (EX: Service Mix)
  14. 14. Architecture PatternsArchitecture Patterns • Architecture pattern example: Model ViewArchitecture pattern example: Model View  Controller – Splits the application into separate layers (Using– Splits the application into separate layers (Using  Layers Pattern) Presentation Layer Model LayerModel Layer Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 14
  15. 15. Architecture PatternsArchitecture Patterns • Architecture pattern example: Model ViewArchitecture pattern example: Model View  Controller – Presentation layer is further split into View and– Presentation layer is further split into View and  Controller Presentation Layer View Layer Controller Layer Model Layer Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 15
  16. 16. Architecture PatternsArchitecture Patterns • Architecture pattern example: Model ViewArchitecture pattern example: Model View  Controller – Each layer is assigned a set of responsibilities– Each layer is assigned a set of responsibilities View Layer Renders the model into a user interface.  Can render HTLM, JSON, XML, etc. View Layer Controller Layer Responds to user events and  may invoke changes on the  model layer Model Layer Controller Layer Operate on business data, i.e., the  business Logic. Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 16
  17. 17. Architecture PatternsArchitecture Patterns • Architecture pattern example: Model ViewArchitecture pattern example: Model View  Controller – User events in a Web application are usually an– User events, in a Web application, are usually an  HTTP Request HTTP Request1 HTTP Response4 Controller ModelViews Render3 Update2 Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 17
  18. 18. Architecture PatternsArchitecture Patterns • Architecture pattern example: Model View Controllerp p – Many interpretations of the Pattern – Some web links: h //h i ifi i / / h / / i d h l• http://heim.ifi.uio.no/~trygver/themes/mvc/mvc‐index.html • http://martinfowler.com/eaaDev/uiArchs.html • http://st‐www.cs.illinois.edu/users/smarch/st‐docs/mvc.html – Some books: • Patterns of Enterprise Architecture (http://amzn.to/book_PEA ) • Pattern‐Oriented Software Architecture Volume 1: A System of  Patterns (http://amzn.to/book_POSAV1 ) Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 18
  19. 19. Architecture PatternsArchitecture Patterns • More Architecture Patterns:More Architecture Patterns: – Patterns of Enterprise Architecture • http://amzn to/book PEAhttp://amzn.to/book_PEA – Pattern‐Oriented Software Architecture Volume 1:  A System of Patterns • http://amzn.to/book_POSAV1  Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 19
  20. 20. Introduction to Design PatternsIntroduction to Design Patterns • What is a Design PatternWhat is a Design Pattern • Architecture Patterns i• Design Patterns Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 20
  21. 21. Design patternDesign pattern Framework for thinking and  d i i OO !designing OO programs! Reusable knowledge in SoftwareReusable knowledge in Software  Design! Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 21
  22. 22. Design patternDesign pattern Java Frameworks for OOKnowledge Framework Java Frameworks for OO  Development Knowledge Framework  for OO Design Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 22
  23. 23. Design Patterns The Book http://amzn.to/book_DPEROOS  Introduction to Design Patterns by João Miguel Pereira is licensed under a Creative  Commons Attribution‐NonCommercial‐ShareAlike 3.0 Unported License 23
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×