This document introduces patterns and discusses how they are not unique to computer science, but have existed for thousands of years. It provides examples of earliest patterns like astronomical constellations and periodic tables. It then explains how object-oriented design patterns like singleton, factory and builder appear in nature, giving examples like traffic police, brand stores, and construction. Finally, it discusses how many other software design patterns like proxy, facade, and mediator can be seen in examples from daily life and literature.
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.
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….
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
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.