If only C.Sc used Patterns Shortest pathconnecting the dots !
Earliest Patterns - 3 Periodic table of elements
Patterns in Nature - OOPS OOPS – Separation of responsibilities. Nothing much
Example - OOPSImagine 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) missedmaking 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
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 (Navi) : 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 her2. Maricha (the daemon) shouts in the voice ofRama 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 canabduct her. 5. Ravana succeeds in abducting Sita
Sita is in deep troubleNow comes the “Memento” design pattern to Sita’srescue. 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 forComputer Science !•We see, hear, experience and come across many patternsin our daily life.•Gang-Of-Four patterns are not the complete list ofpatterns.