SlideShare une entreprise Scribd logo
1  sur  26
DESIGN PATTERNS STORY
1
~ Arunkumar A
6-Mar-2015
FATHER OF PATTERNS
2
CHRISTOPHER ALEXANDER
The Timeless Way of Building, NewYork:
Oxford University Press, 1979.
3
Courtesy:Wikipedia
…is the father of the Pattern
Language movement in
Computer Science
DESIGN – GOOD OR BAD?
If a person were going to design an entryway for a
house,

How would he/she know that the design was good?

Can we know good design?

Is there an objective basis for such a judgment?

A basis for describing our common consensus?
4
DESIGN – GOOD … [CONTD.,]
What is present in a good quality design that is not
present in a poor quality design?
What is present in a poor quality design that is not
present in a good quality design?
5
PATTERNS?
6
WHAT IS A PATTERN?
Christopher’s definition,
A pattern is "a solution to a problem in a context":
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 way that you can use this solution
a million times over, without ever doing it the same way twice
7
DESCRIPTION OF A PATTERN

The name of the pattern

The purpose of the pattern, the problem it solves

How we could accomplish this

The constraints and forces we have to consider in order to
accomplish it
8
PATTERN EXAMPLE
9
COURTYARD
Courtyard (plural
courtyards)
an area, open to the
sky, partially or wholly
surrounded by walls or
buildings
10
Courtesy:Wikipedia
EXCERPTS FROM THE TIMELESS WAY OF
BUILDING
11
“In the same way, a courtyard, which is properly formed, helps people come to life in it “
A pattern always has a name and has a purpose. Here, the pattern's name is Courtyard,
and its purpose is to help energize people, to help them feel alive.
“Consider the forces at work in a courtyard. Most fundamental of all, people seek some
kind of private outdoor space, where they can sit under the sky, see the stars, enjoy the
sun, perhaps plant flowers. This is obvious. “
It is important to state explicitly the problem being solved, which is the reason for having
the pattern in the first place. This is what Alexander does here for Courtyard.
“But there are more subtle forces too. For instance, when a courtyard is too tightly
enclosed, has no view out, people feel uncomfortable, and tend to stay away ...they need
to see out into some larger and more distant space.”
He points out a difficulty with the simplified solution and then gives us a way to solve the
problem that he has just pointed out. Familiarity sometimes keeps us from seeing the
obvious. The value of a pattern is that those with less experience can take advantage of
what others have learned before them: both what must be included to have a good design,
and what must be avoided to keep from a poor design.
SOFTWARE DESIGN
PATTERNS
12
SOFTWARE DESIGN PATTERNS
Early 1990s,

Were there problems in software that occur over and over
again that could be solved in somewhat the same manner?

Was it possible to design software in terms of patterns,
creating specific solutions based on these patterns only after
the patterns had been identified?
13
GANG OF FOUR (GOF)
Gamma, E., Helm, R., Johnson,
R.,Vlissides, J.,
Design Patterns: Elements of
Reusable Object-Oriented
Software, Boston:Addison-
Wesley, 1995.
14
PATTERN
A Pattern has
• Name
• Intent
• Problem
• Solution
• Participants & Collaborators
• Consequences
• Implementation
• Generic diagram
15
23 GOF DESIGN PATTERNS16
Courtesy:flickr.com
WHY STUDY THEM?
17
WHY STUDY DESIGN PATTERNS?
18
Reuse solutions

get a head start on problems and avoid gotchas.

get the benefit of learning from the experience of others.

do not have to reinvent solutions for commonly recurring
problems.
Establish common terminology

Communication and teamwork require a common base of
vocabulary and a common viewpoint of the problem.
WHY …[CONTD.,]
19
Consider two carpenters discussing how to build the drawers
for some cabinets.
Carpenter 1: How do you think we should build these
drawers?
Carpenter 2: Well, I think we should make the joint by cutting
straight down into the wood, and then cut back up 45
degrees, and then going straight back down, and then back
up the other way 45 degrees, and then going straight back
down, and then…
WHY …[CONTD.,]
20
Consider a programmer describing,
“And then, I use a WHILE LOOP here to do…followed by a series
of IF statements to do…and here I use a SWITCH to handle…”
WHY …[CONTD.,]
21
Carpenter 1: “Should we use a dovetail joint or a miter joint?”
Courtesy:Wikipedia
WHY …[CONTD.,]
22
Carpenter 1: Should we use a dovetail joint or a miter joint?
The real question is
Should we use a joint that is expensive to make but is both
beautiful and durable, or should we just make a quick and
dirty joint that will last at least until the check clears?
Courtesy:Wikipedia
WHY …[CONTD.,]
23
Who is more efficient?
Who would you rather work with?
WHY …[CONTD.,]
24

Improve team communications and individual learning

Improved modifiability and maintainability of code

Design patterns illustrate basic object-oriented principles

Adoption of improved strategies even when patterns aren't
present
PATTERNS HELP
US SEE
THE FOREST &
THETREES
25
Design Patterns Explained : A New Perspective on
Object-Oriented Design, Second Edition
By Alan Shalloway, James R. Trott
Courtesy:Wikipedia
REFERENCES
26

Contenu connexe

Tendances

Anatomy of architectural design concept
Anatomy of architectural design conceptAnatomy of architectural design concept
Anatomy of architectural design conceptNahedh Al-Qemaqchi
 
Design studies research quotes
Design studies research quotesDesign studies research quotes
Design studies research quotesLuca Galli
 
I Love Patterns
I Love PatternsI Love Patterns
I Love PatternsMatt Ruma
 
how to make architecture graduation project
how to make architecture graduation project how to make architecture graduation project
how to make architecture graduation project Eman Ateek
 
Employment branding is dead | Talent Connect Anaheim
Employment branding is dead | Talent Connect AnaheimEmployment branding is dead | Talent Connect Anaheim
Employment branding is dead | Talent Connect AnaheimLinkedIn Talent Solutions
 
Carpe Diem: Attention, Awareness, and Interaction Design 2009
Carpe Diem: Attention, Awareness, and Interaction Design 2009Carpe Diem: Attention, Awareness, and Interaction Design 2009
Carpe Diem: Attention, Awareness, and Interaction Design 2009Dan Saffer
 

Tendances (8)

How to be sexy as presenter
How to be sexy as presenterHow to be sexy as presenter
How to be sexy as presenter
 
Anatomy of architectural design concept
Anatomy of architectural design conceptAnatomy of architectural design concept
Anatomy of architectural design concept
 
UX Trivia Night
UX Trivia NightUX Trivia Night
UX Trivia Night
 
Design studies research quotes
Design studies research quotesDesign studies research quotes
Design studies research quotes
 
I Love Patterns
I Love PatternsI Love Patterns
I Love Patterns
 
how to make architecture graduation project
how to make architecture graduation project how to make architecture graduation project
how to make architecture graduation project
 
Employment branding is dead | Talent Connect Anaheim
Employment branding is dead | Talent Connect AnaheimEmployment branding is dead | Talent Connect Anaheim
Employment branding is dead | Talent Connect Anaheim
 
Carpe Diem: Attention, Awareness, and Interaction Design 2009
Carpe Diem: Attention, Awareness, and Interaction Design 2009Carpe Diem: Attention, Awareness, and Interaction Design 2009
Carpe Diem: Attention, Awareness, and Interaction Design 2009
 

Similaire à Design patterns story

Futurizing the Human Experience thru Inclusive Design: The Good People
Futurizing the Human Experience thru Inclusive Design: The Good PeopleFuturizing the Human Experience thru Inclusive Design: The Good People
Futurizing the Human Experience thru Inclusive Design: The Good PeopleEquity and Access Design Group
 
Design Critique and Criticism
Design Critique and Criticism Design Critique and Criticism
Design Critique and Criticism Daniel Alt
 
Design Thinking - NYU Ambition Conference
Design Thinking - NYU Ambition ConferenceDesign Thinking - NYU Ambition Conference
Design Thinking - NYU Ambition ConferenceJeff Wenzinger
 
A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docx
A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docxA Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docx
A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docxblondellchancy
 
27 creativity and innovation tools - in one-pagers!
27 creativity and innovation tools - in one-pagers!27 creativity and innovation tools - in one-pagers!
27 creativity and innovation tools - in one-pagers!Marc Heleven
 
Interaction Design Style (Part 5 of 5)
Interaction Design Style (Part 5 of 5)Interaction Design Style (Part 5 of 5)
Interaction Design Style (Part 5 of 5)Christopher Fahey
 
Understand Problems : Notes
Understand Problems : NotesUnderstand Problems : Notes
Understand Problems : NotesSubhajit Sahu
 
How2research
How2researchHow2research
How2researchkewuc
 
Don't let assumptions kill good ideas web con 2021
Don't let assumptions kill good ideas   web con 2021Don't let assumptions kill good ideas   web con 2021
Don't let assumptions kill good ideas web con 2021Lauren Liss
 
Increasing Innovation IQ
Increasing Innovation IQIncreasing Innovation IQ
Increasing Innovation IQMaria Thompson
 
Dimensioning the Public Sacred by A Nelson 2012
Dimensioning the Public Sacred by A Nelson 2012Dimensioning the Public Sacred by A Nelson 2012
Dimensioning the Public Sacred by A Nelson 2012Amber Daniela Nelson
 
Eduserv Digital Identities Workshop
Eduserv Digital Identities WorkshopEduserv Digital Identities Workshop
Eduserv Digital Identities WorkshopYishay Mor
 
Inclusive Design: Tools, technologies + strategies
Inclusive Design: Tools, technologies + strategiesInclusive Design: Tools, technologies + strategies
Inclusive Design: Tools, technologies + strategiesJess Mitchell
 
Design for debate, an introduction to design fiction and my research topic (T...
Design for debate, an introduction to design fiction and my research topic (T...Design for debate, an introduction to design fiction and my research topic (T...
Design for debate, an introduction to design fiction and my research topic (T...Max Mollon
 
Design Thinking Teacher Workshop- Shelter Challenges
Design Thinking Teacher Workshop- Shelter ChallengesDesign Thinking Teacher Workshop- Shelter Challenges
Design Thinking Teacher Workshop- Shelter ChallengesMolly B. Zielezinski PhD
 
Don't let assumptions kill good ideas
Don't let assumptions kill good ideasDon't let assumptions kill good ideas
Don't let assumptions kill good ideasLauren Liss
 

Similaire à Design patterns story (20)

Futurizing the Human Experience thru Inclusive Design: The Good People
Futurizing the Human Experience thru Inclusive Design: The Good PeopleFuturizing the Human Experience thru Inclusive Design: The Good People
Futurizing the Human Experience thru Inclusive Design: The Good People
 
Design Critique and Criticism
Design Critique and Criticism Design Critique and Criticism
Design Critique and Criticism
 
Design Thinking - NYU Ambition Conference
Design Thinking - NYU Ambition ConferenceDesign Thinking - NYU Ambition Conference
Design Thinking - NYU Ambition Conference
 
Introduction to Design Thinking Workshop
Introduction to Design Thinking WorkshopIntroduction to Design Thinking Workshop
Introduction to Design Thinking Workshop
 
A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docx
A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docxA Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docx
A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docx
 
27 creativity and innovation tools - in one-pagers!
27 creativity and innovation tools - in one-pagers!27 creativity and innovation tools - in one-pagers!
27 creativity and innovation tools - in one-pagers!
 
Interaction Design Style (Part 5 of 5)
Interaction Design Style (Part 5 of 5)Interaction Design Style (Part 5 of 5)
Interaction Design Style (Part 5 of 5)
 
Understand Problems : Notes
Understand Problems : NotesUnderstand Problems : Notes
Understand Problems : Notes
 
My Design Theory
My Design TheoryMy Design Theory
My Design Theory
 
How2research
How2researchHow2research
How2research
 
THEORY OF DESIGN
THEORY OF DESIGN THEORY OF DESIGN
THEORY OF DESIGN
 
Don't let assumptions kill good ideas web con 2021
Don't let assumptions kill good ideas   web con 2021Don't let assumptions kill good ideas   web con 2021
Don't let assumptions kill good ideas web con 2021
 
Increasing Innovation IQ
Increasing Innovation IQIncreasing Innovation IQ
Increasing Innovation IQ
 
Dimensioning the Public Sacred by A Nelson 2012
Dimensioning the Public Sacred by A Nelson 2012Dimensioning the Public Sacred by A Nelson 2012
Dimensioning the Public Sacred by A Nelson 2012
 
Eduserv Digital Identities Workshop
Eduserv Digital Identities WorkshopEduserv Digital Identities Workshop
Eduserv Digital Identities Workshop
 
Inclusive Design: Tools, technologies + strategies
Inclusive Design: Tools, technologies + strategiesInclusive Design: Tools, technologies + strategies
Inclusive Design: Tools, technologies + strategies
 
Design for debate, an introduction to design fiction and my research topic (T...
Design for debate, an introduction to design fiction and my research topic (T...Design for debate, an introduction to design fiction and my research topic (T...
Design for debate, an introduction to design fiction and my research topic (T...
 
Playful Gray.pptx
Playful Gray.pptxPlayful Gray.pptx
Playful Gray.pptx
 
Design Thinking Teacher Workshop- Shelter Challenges
Design Thinking Teacher Workshop- Shelter ChallengesDesign Thinking Teacher Workshop- Shelter Challenges
Design Thinking Teacher Workshop- Shelter Challenges
 
Don't let assumptions kill good ideas
Don't let assumptions kill good ideasDon't let assumptions kill good ideas
Don't let assumptions kill good ideas
 

Dernier

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Dernier (20)

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
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...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

Design patterns story

  • 1. DESIGN PATTERNS STORY 1 ~ Arunkumar A 6-Mar-2015
  • 3. CHRISTOPHER ALEXANDER The Timeless Way of Building, NewYork: Oxford University Press, 1979. 3 Courtesy:Wikipedia …is the father of the Pattern Language movement in Computer Science
  • 4. DESIGN – GOOD OR BAD? If a person were going to design an entryway for a house,  How would he/she know that the design was good?  Can we know good design?  Is there an objective basis for such a judgment?  A basis for describing our common consensus? 4
  • 5. DESIGN – GOOD … [CONTD.,] What is present in a good quality design that is not present in a poor quality design? What is present in a poor quality design that is not present in a good quality design? 5
  • 7. WHAT IS A PATTERN? Christopher’s definition, A pattern is "a solution to a problem in a context": 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 way that you can use this solution a million times over, without ever doing it the same way twice 7
  • 8. DESCRIPTION OF A PATTERN  The name of the pattern  The purpose of the pattern, the problem it solves  How we could accomplish this  The constraints and forces we have to consider in order to accomplish it 8
  • 10. COURTYARD Courtyard (plural courtyards) an area, open to the sky, partially or wholly surrounded by walls or buildings 10 Courtesy:Wikipedia
  • 11. EXCERPTS FROM THE TIMELESS WAY OF BUILDING 11 “In the same way, a courtyard, which is properly formed, helps people come to life in it “ A pattern always has a name and has a purpose. Here, the pattern's name is Courtyard, and its purpose is to help energize people, to help them feel alive. “Consider the forces at work in a courtyard. Most fundamental of all, people seek some kind of private outdoor space, where they can sit under the sky, see the stars, enjoy the sun, perhaps plant flowers. This is obvious. “ It is important to state explicitly the problem being solved, which is the reason for having the pattern in the first place. This is what Alexander does here for Courtyard. “But there are more subtle forces too. For instance, when a courtyard is too tightly enclosed, has no view out, people feel uncomfortable, and tend to stay away ...they need to see out into some larger and more distant space.” He points out a difficulty with the simplified solution and then gives us a way to solve the problem that he has just pointed out. Familiarity sometimes keeps us from seeing the obvious. The value of a pattern is that those with less experience can take advantage of what others have learned before them: both what must be included to have a good design, and what must be avoided to keep from a poor design.
  • 13. SOFTWARE DESIGN PATTERNS Early 1990s,  Were there problems in software that occur over and over again that could be solved in somewhat the same manner?  Was it possible to design software in terms of patterns, creating specific solutions based on these patterns only after the patterns had been identified? 13
  • 14. GANG OF FOUR (GOF) Gamma, E., Helm, R., Johnson, R.,Vlissides, J., Design Patterns: Elements of Reusable Object-Oriented Software, Boston:Addison- Wesley, 1995. 14
  • 15. PATTERN A Pattern has • Name • Intent • Problem • Solution • Participants & Collaborators • Consequences • Implementation • Generic diagram 15
  • 16. 23 GOF DESIGN PATTERNS16 Courtesy:flickr.com
  • 18. WHY STUDY DESIGN PATTERNS? 18 Reuse solutions  get a head start on problems and avoid gotchas.  get the benefit of learning from the experience of others.  do not have to reinvent solutions for commonly recurring problems. Establish common terminology  Communication and teamwork require a common base of vocabulary and a common viewpoint of the problem.
  • 19. WHY …[CONTD.,] 19 Consider two carpenters discussing how to build the drawers for some cabinets. Carpenter 1: How do you think we should build these drawers? Carpenter 2: Well, I think we should make the joint by cutting straight down into the wood, and then cut back up 45 degrees, and then going straight back down, and then back up the other way 45 degrees, and then going straight back down, and then…
  • 20. WHY …[CONTD.,] 20 Consider a programmer describing, “And then, I use a WHILE LOOP here to do…followed by a series of IF statements to do…and here I use a SWITCH to handle…”
  • 21. WHY …[CONTD.,] 21 Carpenter 1: “Should we use a dovetail joint or a miter joint?” Courtesy:Wikipedia
  • 22. WHY …[CONTD.,] 22 Carpenter 1: Should we use a dovetail joint or a miter joint? The real question is Should we use a joint that is expensive to make but is both beautiful and durable, or should we just make a quick and dirty joint that will last at least until the check clears? Courtesy:Wikipedia
  • 23. WHY …[CONTD.,] 23 Who is more efficient? Who would you rather work with?
  • 24. WHY …[CONTD.,] 24  Improve team communications and individual learning  Improved modifiability and maintainability of code  Design patterns illustrate basic object-oriented principles  Adoption of improved strategies even when patterns aren't present
  • 25. PATTERNS HELP US SEE THE FOREST & THETREES 25
  • 26. Design Patterns Explained : A New Perspective on Object-Oriented Design, Second Edition By Alan Shalloway, James R. Trott Courtesy:Wikipedia REFERENCES 26