SlideShare a Scribd company logo
Prakash Sathiyamoorthy
Presentation Overview
 Introduction to Patterns
 Patterns are not only for C.Sc.
 Earliest Patterns.
 Patterns in C.Sc. To real life.
Patterns - What are they?
 Natural human thought process
 Helps to solve problems effectively
 Easy to recognize
 Has been in use for thousands of years
 We come across them everyday
Patterns - Not a C.Sc Subject
 Computer Science has adopted a version of Design
  Patterns.
 Design patterns are for everyone.
Earliest Patterns - 1
 Astronomical constellations
Earliest Patterns - 2
 Rangolis
If only C.Sc used Patterns 

Shortest path
connecting the dots !
Earliest Patterns - 3
 Periodic table of elements
Patterns in Nature - OOPS
 OOPS –

   Separation of responsibilities.
   Nothing much 
Example - OOPS
Imagine if you are a single person :

         building your own house,
         manufacturing your own car,
         cooking your own food,
         farming your own crops,
         stitching your own dresses,
         doing laundry,
         running your own transport,
         making your own televisions,
         running your own channels, etc. etc. etc….
OOPS !!! (literally) missed

making your own software !
Patterns in Nature - Singleton
 Problem: Controlling traffic in a road junction.
 Imagine having a police for every direction.

 Solution: Place one at the center.


 Example: Traffic police in junctions.


                                                Pic follows
Patterns in Nature - Factory
 Problem: Imagine visiting every brand’s showroom
 separately i.e. Reebok, Peter England, etc.

 Solution: Keep every brand under one roof so it is
 easy to find everything in the same place.

 Example: Brand factory
Patterns in Nature - Builder
 Problem: A guy that’s wants to own a house most of
 the times cannot build himself/herself.

 Solution: Handover the responsibility of building the
 house to a builder who specializes in that.

 Example: Construction builder
Patterns in Nature - Prototype
 Problem: Imagine writing lecture notes laboriously
 during the lecture in college.

 Solution (Easy) : Take photocopies from the front row
 guys 

 Example: Xerox copies
Patterns in Nature - Pool
 Problem: Everyone wants to pick up the same book the
  subject lecturer announces. You cannot have infinite copies
  of a title. Even if you do, not all would be required.

 Solution: Have finite set of copies and keep circulating
  that.

 Examples:
    Lending books from library
    Cabs servicing customers
Patterns in Nature - Flyweight
 Problem: Making ice for every color is not only costly
  but also unnecessary.

 Solution: Have ice separately so it is easy to mix the
  essence which differs among orders.

 Example: ice gola (Pic follows)
Patterns in Nature - Composite
 Some patterns are hard to explain and this is one of
 them, so lets skip 
Patterns in Nature - Adapter
 Problem: You reach US and try to connect your
 Laptop you purchased in India and end up in trouble.

 Solution: You get a India-US plug adapter that can
 connect your plug to the wall socket.
Patterns in Nature - Decorator
 Problem: Well, there are no problems here actually.


 Solution: A solution is not required when there is no
 problem  So a decorator just adds up to the beauty of
 the original. May be having undecorated could be
 scary 

 Example: suspense here, next slide
And he is the
“Decorator”
Patterns in Nature - Proxy
 Problem: Original may be presented later until
  absolutely required.

 Solution: Place a substitute for time being.


 Example:
    Proxy attendance, reserving bus seat with kerchief
     (could be any piece of cloth actually )
Bus seat reservation with kerchief
Patterns in Nature - Bridge
 Remember, some patterns cannot be explained so
 easily? This is the second one, so we’ll skip.
Patterns in Nature - Facade
 Problem: Hide the complexity and expose a much
 simpler and a easy to understand look.

 Solution: Cover the complex portion with a thing that
 looks simpler and beautiful.

 Example: A modern building’s façade


                                            Pic follows
Patterns in Nature - COR
 Problem: One person/entity is burdened with all the
  responsibilities.

 Solution: Delegate the individual responsibilities so that
  one person/entity is not burdened with all the work.

 Examples:

    A typical hotel scenario – biller -> Server -> Cook
    A government office – extended COR 
Patterns in Nature - Template
 Problem: Making commonly used patterns is time consuming

 Solution: Avoid commonly used but time consuming work by
  having a ready made shape that can be used as a reference to
  make the intended one easily

 Examples:
    Stencils in school
    Painting templates


   Do you realize how early you
   started applying design patterns?
Patterns in Nature - Interpreter
 Problem: Need a dedicated way of handling a small
 domain related work.

 Solution: Define a domain specific language, the
 grammar, rules for interpretation, etc.

 Example: Language used in avatar (Na'vi) : Define a
 domain’s own language and the interpretation rules.
Patterns in Nature - Command
 Problem: Need a command in between that will
 shorten things up. Imagine every customer of hotel
 talking to the cook directly !

 Solution: Have a person/thing in between who can
 take the command and delegate the request and
 handle it back.

 Example: A server in hotel – One who takes the
 request is not the one that does the actual work.
Patterns in Nature - Iterator
 Problem: Need a easy way to visit every member of a
 group.

 Solution: Have a representation of the collection so it
 is easy to callout each person.

 Example: An attendance register.
Patterns in Nature - Mediator
 Problem: Need to mediate things so that the
 individual entities can have easy and effective
 communication.

 Solution: Place a mediator who will mediate between
 the things. In our example, quikrr or ebay mediates
 between buyers and sellers.

 Example: Quikrrrrrrrrrrr, ebay
Patterns in Nature - Memento
 Problem: Need to keep a memory for every occasion
 so it is easy to recollect later.

 Solution: Have a memento for every occasion.


 Example: from Ramayana, next slide.
Aaranya Kand
                              1. Sita asks Rama to fetch the deer for her




2. Maricha (the daemon) shouts in the voice of
Rama asking for Lakshmana for help.
3. Lakshman draws the restricted boundary line
                              for Sita.




4.Ravana makes Sita to cross the line so that he can
abduct her.




                              5. Ravana succeeds in abducting Sita
Sita is in deep trouble

Now comes the “Memento” design pattern to Sita’s
rescue.


                                        6. Sita keeps throwing her
                                        ornaments (mementos) for
                                        Rama to trace the route to find
                                        her !




No computer program would have applied this pattern before Sita did 
Conclusion

•So, Design Patterns are definitely not invented for
Computer Science !

•We see, hear, experience and come across many patterns
in our daily life.

•Gang-Of-Four patterns are not the complete list of
patterns.
Thank You !
Prakash.sathiyamoorthy@gmail.com

More Related Content

Viewers also liked

Patterns number and geometric
Patterns  number and geometricPatterns  number and geometric
Patterns number and geometric
amdzubinski
 
Repeating and growing patterns
Repeating and growing patternsRepeating and growing patterns
Repeating and growing patterns
Jessica Weesies
 
Nature of sociology
Nature of sociologyNature of sociology
Nature of sociology
Rica Ann Calonge
 
Types Of Flower
Types Of  FlowerTypes Of  Flower
Types Of Flower
guest275ba2
 
Math in nature
Math in natureMath in nature
Math in nature
Iwan Pranoto
 
Flowers
FlowersFlowers
Flowers
jugafoce
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
Seth Familian
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
 

Viewers also liked (8)

Patterns number and geometric
Patterns  number and geometricPatterns  number and geometric
Patterns number and geometric
 
Repeating and growing patterns
Repeating and growing patternsRepeating and growing patterns
Repeating and growing patterns
 
Nature of sociology
Nature of sociologyNature of sociology
Nature of sociology
 
Types Of Flower
Types Of  FlowerTypes Of  Flower
Types Of Flower
 
Math in nature
Math in natureMath in nature
Math in nature
 
Flowers
FlowersFlowers
Flowers
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar to Design Patterns - Inspirations From Nature

Shape borrowing sec 1 2010
Shape borrowing  sec 1 2010Shape borrowing  sec 1 2010
Shape borrowing sec 1 2010
anil2531
 
January 29th PowerPoint
January 29th PowerPointJanuary 29th PowerPoint
January 29th PowerPoint
Miami University
 
Design Patterns Story
Design Patterns StoryDesign Patterns Story
Design Patterns Story
Arun A
 
Objects for modeling world
Objects for modeling worldObjects for modeling world
Objects for modeling world
Eswaran P
 
Stories2patterns
Stories2patternsStories2patterns
Stories2patterns
Yishay Mor
 
Improving Software Languages: usage patterns to the rescue
Improving Software Languages: usage patterns to the rescueImproving Software Languages: usage patterns to the rescue
Improving Software Languages: usage patterns to the rescue
Jordi Cabot
 
Yishay Mor
Yishay MorYishay Mor
Yishay Mor
HandheldLearning
 
planet-handheldlearning08
planet-handheldlearning08planet-handheldlearning08
planet-handheldlearning08
Yishay Mor
 
Problem solving and experiments
Problem solving and experimentsProblem solving and experiments
Problem solving and experiments
OliverColeman12345
 
What is creative thinking, why do we need it and how do we learn it
What is creative thinking, why do we need it and how do we learn itWhat is creative thinking, why do we need it and how do we learn it
What is creative thinking, why do we need it and how do we learn it
h20ho
 
Digital Practices Portfolio
Digital Practices PortfolioDigital Practices Portfolio
Digital Practices Portfolio
Libbynolan
 
Design Thinking by Mark Uraine
Design Thinking by Mark UraineDesign Thinking by Mark Uraine
Design Thinking by Mark Uraine
Mark Uraine
 
UX London Redux - Dan Saffer
UX London Redux - Dan SafferUX London Redux - Dan Saffer
UX London Redux - Dan Saffer
cpetzny
 
Visual Rhetoric, Feb 3rd, Late Show (with snow day make-up)
Visual Rhetoric, Feb 3rd, Late Show (with snow day make-up)Visual Rhetoric, Feb 3rd, Late Show (with snow day make-up)
Visual Rhetoric, Feb 3rd, Late Show (with snow day make-up)
Miami University
 
A Timeless Way of Communicating: Alexandrian Pattern Languages
A Timeless Way of Communicating: Alexandrian Pattern LanguagesA Timeless Way of Communicating: Alexandrian Pattern Languages
A Timeless Way of Communicating: Alexandrian Pattern Languages
Joshua Kerievsky
 
Soylent: A Word Processor with a Crowd Inside
Soylent: A Word Processor with a Crowd InsideSoylent: A Word Processor with a Crowd Inside
Soylent: A Word Processor with a Crowd Inside
Michael Bernstein
 
The Modlet Pattern
The Modlet PatternThe Modlet Pattern
The Modlet Pattern
Adam L Barrett
 
3 solving problems
3 solving problems3 solving problems
3 solving problems
hccit
 
Visual Rhetoric, August 28th
Visual Rhetoric, August 28thVisual Rhetoric, August 28th
Visual Rhetoric, August 28th
Miami University
 
Technology Seminar IH Brno 26 Feb 2011
Technology Seminar IH Brno 26 Feb 2011Technology Seminar IH Brno 26 Feb 2011
Technology Seminar IH Brno 26 Feb 2011
Sandy Millin
 

Similar to Design Patterns - Inspirations From Nature (20)

Shape borrowing sec 1 2010
Shape borrowing  sec 1 2010Shape borrowing  sec 1 2010
Shape borrowing sec 1 2010
 
January 29th PowerPoint
January 29th PowerPointJanuary 29th PowerPoint
January 29th PowerPoint
 
Design Patterns Story
Design Patterns StoryDesign Patterns Story
Design Patterns Story
 
Objects for modeling world
Objects for modeling worldObjects for modeling world
Objects for modeling world
 
Stories2patterns
Stories2patternsStories2patterns
Stories2patterns
 
Improving Software Languages: usage patterns to the rescue
Improving Software Languages: usage patterns to the rescueImproving Software Languages: usage patterns to the rescue
Improving Software Languages: usage patterns to the rescue
 
Yishay Mor
Yishay MorYishay Mor
Yishay Mor
 
planet-handheldlearning08
planet-handheldlearning08planet-handheldlearning08
planet-handheldlearning08
 
Problem solving and experiments
Problem solving and experimentsProblem solving and experiments
Problem solving and experiments
 
What is creative thinking, why do we need it and how do we learn it
What is creative thinking, why do we need it and how do we learn itWhat is creative thinking, why do we need it and how do we learn it
What is creative thinking, why do we need it and how do we learn it
 
Digital Practices Portfolio
Digital Practices PortfolioDigital Practices Portfolio
Digital Practices Portfolio
 
Design Thinking by Mark Uraine
Design Thinking by Mark UraineDesign Thinking by Mark Uraine
Design Thinking by Mark Uraine
 
UX London Redux - Dan Saffer
UX London Redux - Dan SafferUX London Redux - Dan Saffer
UX London Redux - Dan Saffer
 
Visual Rhetoric, Feb 3rd, Late Show (with snow day make-up)
Visual Rhetoric, Feb 3rd, Late Show (with snow day make-up)Visual Rhetoric, Feb 3rd, Late Show (with snow day make-up)
Visual Rhetoric, Feb 3rd, Late Show (with snow day make-up)
 
A Timeless Way of Communicating: Alexandrian Pattern Languages
A Timeless Way of Communicating: Alexandrian Pattern LanguagesA Timeless Way of Communicating: Alexandrian Pattern Languages
A Timeless Way of Communicating: Alexandrian Pattern Languages
 
Soylent: A Word Processor with a Crowd Inside
Soylent: A Word Processor with a Crowd InsideSoylent: A Word Processor with a Crowd Inside
Soylent: A Word Processor with a Crowd Inside
 
The Modlet Pattern
The Modlet PatternThe Modlet Pattern
The Modlet Pattern
 
3 solving problems
3 solving problems3 solving problems
3 solving problems
 
Visual Rhetoric, August 28th
Visual Rhetoric, August 28thVisual Rhetoric, August 28th
Visual Rhetoric, August 28th
 
Technology Seminar IH Brno 26 Feb 2011
Technology Seminar IH Brno 26 Feb 2011Technology Seminar IH Brno 26 Feb 2011
Technology Seminar IH Brno 26 Feb 2011
 

Recently uploaded

Standardized tool for Intelligence test.
Standardized tool for Intelligence test.Standardized tool for Intelligence test.
Standardized tool for Intelligence test.
deepaannamalai16
 
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
EduSkills OECD
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
iammrhaywood
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Fajar Baskoro
 
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
TechSoup
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
Nguyen Thanh Tu Collection
 
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
National Information Standards Organization (NISO)
 
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) CurriculumPhilippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
MJDuyan
 
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.pptLevel 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
Henry Hollis
 
Bonku-Babus-Friend by Sathyajith Ray (9)
Bonku-Babus-Friend by Sathyajith Ray  (9)Bonku-Babus-Friend by Sathyajith Ray  (9)
Bonku-Babus-Friend by Sathyajith Ray (9)
nitinpv4ai
 
MDP on air pollution of class 8 year 2024-2025
MDP on air pollution of class 8 year 2024-2025MDP on air pollution of class 8 year 2024-2025
MDP on air pollution of class 8 year 2024-2025
khuleseema60
 
math operations ued in python and all used
math operations ued in python and all usedmath operations ued in python and all used
math operations ued in python and all used
ssuser13ffe4
 
RESULTS OF THE EVALUATION QUESTIONNAIRE.pptx
RESULTS OF THE EVALUATION QUESTIONNAIRE.pptxRESULTS OF THE EVALUATION QUESTIONNAIRE.pptx
RESULTS OF THE EVALUATION QUESTIONNAIRE.pptx
zuzanka
 
HYPERTENSION - SLIDE SHARE PRESENTATION.
HYPERTENSION - SLIDE SHARE PRESENTATION.HYPERTENSION - SLIDE SHARE PRESENTATION.
HYPERTENSION - SLIDE SHARE PRESENTATION.
deepaannamalai16
 
Haunted Houses by H W Longfellow for class 10
Haunted Houses by H W Longfellow for class 10Haunted Houses by H W Longfellow for class 10
Haunted Houses by H W Longfellow for class 10
nitinpv4ai
 
Stack Memory Organization of 8086 Microprocessor
Stack Memory Organization of 8086 MicroprocessorStack Memory Organization of 8086 Microprocessor
Stack Memory Organization of 8086 Microprocessor
JomonJoseph58
 
How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17
Celine George
 
skeleton System.pdf (skeleton system wow)
skeleton System.pdf (skeleton system wow)skeleton System.pdf (skeleton system wow)
skeleton System.pdf (skeleton system wow)
Mohammad Al-Dhahabi
 
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptxPrésentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
siemaillard
 
Electric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger HuntElectric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger Hunt
RamseyBerglund
 

Recently uploaded (20)

Standardized tool for Intelligence test.
Standardized tool for Intelligence test.Standardized tool for Intelligence test.
Standardized tool for Intelligence test.
 
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
 
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
 
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
 
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) CurriculumPhilippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
 
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.pptLevel 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
 
Bonku-Babus-Friend by Sathyajith Ray (9)
Bonku-Babus-Friend by Sathyajith Ray  (9)Bonku-Babus-Friend by Sathyajith Ray  (9)
Bonku-Babus-Friend by Sathyajith Ray (9)
 
MDP on air pollution of class 8 year 2024-2025
MDP on air pollution of class 8 year 2024-2025MDP on air pollution of class 8 year 2024-2025
MDP on air pollution of class 8 year 2024-2025
 
math operations ued in python and all used
math operations ued in python and all usedmath operations ued in python and all used
math operations ued in python and all used
 
RESULTS OF THE EVALUATION QUESTIONNAIRE.pptx
RESULTS OF THE EVALUATION QUESTIONNAIRE.pptxRESULTS OF THE EVALUATION QUESTIONNAIRE.pptx
RESULTS OF THE EVALUATION QUESTIONNAIRE.pptx
 
HYPERTENSION - SLIDE SHARE PRESENTATION.
HYPERTENSION - SLIDE SHARE PRESENTATION.HYPERTENSION - SLIDE SHARE PRESENTATION.
HYPERTENSION - SLIDE SHARE PRESENTATION.
 
Haunted Houses by H W Longfellow for class 10
Haunted Houses by H W Longfellow for class 10Haunted Houses by H W Longfellow for class 10
Haunted Houses by H W Longfellow for class 10
 
Stack Memory Organization of 8086 Microprocessor
Stack Memory Organization of 8086 MicroprocessorStack Memory Organization of 8086 Microprocessor
Stack Memory Organization of 8086 Microprocessor
 
How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17
 
skeleton System.pdf (skeleton system wow)
skeleton System.pdf (skeleton system wow)skeleton System.pdf (skeleton system wow)
skeleton System.pdf (skeleton system wow)
 
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptxPrésentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
 
Electric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger HuntElectric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger Hunt
 

Design Patterns - Inspirations From Nature

  • 2. Presentation Overview  Introduction to Patterns  Patterns are not only for C.Sc.  Earliest Patterns.  Patterns in C.Sc. To real life.
  • 3. Patterns - What are they?  Natural human thought process  Helps to solve problems effectively  Easy to recognize  Has been in use for thousands of years  We come across them everyday
  • 4. Patterns - Not a C.Sc Subject  Computer Science has adopted a version of Design Patterns.  Design patterns are for everyone.
  • 5. Earliest Patterns - 1  Astronomical constellations
  • 6. Earliest Patterns - 2  Rangolis
  • 7. If only C.Sc used Patterns  Shortest path connecting the dots !
  • 8. Earliest Patterns - 3  Periodic table of elements
  • 9. Patterns in Nature - OOPS  OOPS –  Separation of responsibilities.  Nothing much 
  • 10. Example - OOPS Imagine if you are a single person : building your own house, manufacturing your own car, cooking your own food, farming your own crops, stitching your own dresses, doing laundry, running your own transport, making your own televisions, running your own channels, etc. etc. etc….
  • 11. OOPS !!! (literally) missed making your own software !
  • 12. Patterns in Nature - Singleton  Problem: Controlling traffic in a road junction. Imagine having a police for every direction.  Solution: Place one at the center.  Example: Traffic police in junctions. Pic follows
  • 13.
  • 14. Patterns in Nature - Factory  Problem: Imagine visiting every brand’s showroom separately i.e. Reebok, Peter England, etc.  Solution: Keep every brand under one roof so it is easy to find everything in the same place.  Example: Brand factory
  • 15. Patterns in Nature - Builder  Problem: A guy that’s wants to own a house most of the times cannot build himself/herself.  Solution: Handover the responsibility of building the house to a builder who specializes in that.  Example: Construction builder
  • 16. Patterns in Nature - Prototype  Problem: Imagine writing lecture notes laboriously during the lecture in college.  Solution (Easy) : Take photocopies from the front row guys   Example: Xerox copies
  • 17. Patterns in Nature - Pool  Problem: Everyone wants to pick up the same book the subject lecturer announces. You cannot have infinite copies of a title. Even if you do, not all would be required.  Solution: Have finite set of copies and keep circulating that.  Examples:  Lending books from library  Cabs servicing customers
  • 18. Patterns in Nature - Flyweight  Problem: Making ice for every color is not only costly but also unnecessary.  Solution: Have ice separately so it is easy to mix the essence which differs among orders.  Example: ice gola (Pic follows)
  • 19.
  • 20. Patterns in Nature - Composite  Some patterns are hard to explain and this is one of them, so lets skip 
  • 21. Patterns in Nature - Adapter  Problem: You reach US and try to connect your Laptop you purchased in India and end up in trouble.  Solution: You get a India-US plug adapter that can connect your plug to the wall socket.
  • 22. Patterns in Nature - Decorator  Problem: Well, there are no problems here actually.  Solution: A solution is not required when there is no problem  So a decorator just adds up to the beauty of the original. May be having undecorated could be scary   Example: suspense here, next slide
  • 23. And he is the “Decorator”
  • 24. Patterns in Nature - Proxy  Problem: Original may be presented later until absolutely required.  Solution: Place a substitute for time being.  Example:  Proxy attendance, reserving bus seat with kerchief (could be any piece of cloth actually ) Bus seat reservation with kerchief
  • 25. Patterns in Nature - Bridge  Remember, some patterns cannot be explained so easily? This is the second one, so we’ll skip.
  • 26. Patterns in Nature - Facade  Problem: Hide the complexity and expose a much simpler and a easy to understand look.  Solution: Cover the complex portion with a thing that looks simpler and beautiful.  Example: A modern building’s façade Pic follows
  • 27.
  • 28. Patterns in Nature - COR  Problem: One person/entity is burdened with all the responsibilities.  Solution: Delegate the individual responsibilities so that one person/entity is not burdened with all the work.  Examples:  A typical hotel scenario – biller -> Server -> Cook  A government office – extended COR 
  • 29. Patterns in Nature - Template  Problem: Making commonly used patterns is time consuming  Solution: Avoid commonly used but time consuming work by having a ready made shape that can be used as a reference to make the intended one easily  Examples:  Stencils in school  Painting templates Do you realize how early you started applying design patterns?
  • 30. Patterns in Nature - Interpreter  Problem: Need a dedicated way of handling a small domain related work.  Solution: Define a domain specific language, the grammar, rules for interpretation, etc.  Example: Language used in avatar (Na'vi) : Define a domain’s own language and the interpretation rules.
  • 31. Patterns in Nature - Command  Problem: Need a command in between that will shorten things up. Imagine every customer of hotel talking to the cook directly !  Solution: Have a person/thing in between who can take the command and delegate the request and handle it back.  Example: A server in hotel – One who takes the request is not the one that does the actual work.
  • 32. Patterns in Nature - Iterator  Problem: Need a easy way to visit every member of a group.  Solution: Have a representation of the collection so it is easy to callout each person.  Example: An attendance register.
  • 33. Patterns in Nature - Mediator  Problem: Need to mediate things so that the individual entities can have easy and effective communication.  Solution: Place a mediator who will mediate between the things. In our example, quikrr or ebay mediates between buyers and sellers.  Example: Quikrrrrrrrrrrr, ebay
  • 34. Patterns in Nature - Memento  Problem: Need to keep a memory for every occasion so it is easy to recollect later.  Solution: Have a memento for every occasion.  Example: from Ramayana, next slide.
  • 35. Aaranya Kand 1. Sita asks Rama to fetch the deer for her 2. Maricha (the daemon) shouts in the voice of Rama asking for Lakshmana for help.
  • 36. 3. Lakshman draws the restricted boundary line for Sita. 4.Ravana makes Sita to cross the line so that he can abduct her. 5. Ravana succeeds in abducting Sita
  • 37. Sita is in deep trouble Now comes the “Memento” design pattern to Sita’s rescue. 6. Sita keeps throwing her ornaments (mementos) for Rama to trace the route to find her ! No computer program would have applied this pattern before Sita did 
  • 38. Conclusion •So, Design Patterns are definitely not invented for Computer Science ! •We see, hear, experience and come across many patterns in our daily life. •Gang-Of-Four patterns are not the complete list of patterns.