SlideShare uma empresa Scribd logo
1 de 39
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

Mais conteúdo relacionado

Destaque (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
 

Semelhante a 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
 
Stories2patterns
Stories2patternsStories2patterns
Stories2patterns
Yishay Mor
 
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
 
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
 
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
 

Semelhante a 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
 
Verbs - English Grammar Lesson 1 by Slidesgo.pptx
Verbs - English Grammar Lesson 1 by Slidesgo.pptxVerbs - English Grammar Lesson 1 by Slidesgo.pptx
Verbs - English Grammar Lesson 1 by Slidesgo.pptx
 
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
 

Último

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Último (20)

Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 

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.