Design Pattern as  tale

Design Pattern as tale

Design patterns are best practice to tackle certain problems .

In Object oriented language , involves 3 step to model program

  1. How to instantiate an object or group of related objects ----Creational DP

ABFPS

Remember : (Abraham Became First President of States)

(Abstract Factory,Builder,Factory Method,Prototype,Singleton)



?? Simple Factory

Real world example


Consider, you are building a house and you need doors. It would be a mess if every time you need a door, you put on your carpenter clothes and start making a door in your house. Instead you get it made from a factory.

?? Factory Method

Real world example


Consider the case of a hiring manager. It is impossible for one person to interview for each of the positions. Based on the job opening, she has to decide and delegate the interview steps to different people.

?? Abstract Factory

Real world example



Extending our door example from Simple Factory. Based on your needs you might get a wooden door from a wooden door shop, iron door from an iron shop or a PVC door from the relevant shop. Plus you might need a guy with different kind of specialities to fit the door, for example a carpenter for wooden door, welder for iron door etc. As you can see there is a dependency between the doors now, wooden door needs carpenter, iron door needs a welder etc

?? Builder

Real world example


Imagine you are at Hardee's and you order a specific deal, lets say, "Big Hardee" and they hand it over to you without  any questions; this is the example of simple factory. But there are cases when the creation logic might involve more steps. For example you want a customized Subway deal, you have several options in how your burger is made e.g what bread do you want? what types of sauces would you like? What cheese would you want? etc. In such cases builder pattern comes to the rescue.

?? Prototype

Real world example


Remember dolly? The sheep that was cloned! Lets not get into the details but the key point here is that it is all about cloning

?? Singleton

Real world example


There can only be one president of a country at a time. The same president has to be brought to action, whenever duty calls. President here is singleton.


2.How to build a software component? ---Structural DP

Remember: ABCDFFP

(Adapter,Bridge,Composite,Decorator,Fa?ade,Flyweight,Proxy)



?? Adapter

Real world example


Consider that you have some pictures in your memory card and you need to transfer them to your computer. In order to transfer them you need some kind of adapter that is compatible with your computer ports so that you can attach memory card to your computer. In this case card reader is an adapter. Another example would be the famous power adapter; a three legged plug can't be connected to a two pronged outlet, it needs to use a power adapter that makes it compatible with the two pronged outlet. Yet another example would be a translator translating words spoken by one person to another

?? Bridge

Real world example


Consider you have a website with different pages and you are supposed to allow the user to change the theme. What would you do? Create multiple copies of each of the pages for each of the themes or would you just create separate theme and load them based on the user's preferences? Bridge pattern allows you to do the second

?? Composite

Real world example


Every organization is composed of employees. Each of the employees has same features i.e. has a salary, has some responsibilities, may or may not report to someone, may or may not have some subordinates etc.

? Decorator

Real world example


Imagine you run a car service shop offering multiple services. Now how do you calculate the bill to be charged? You pick one service and dynamically keep adding to it the prices for the provided services till you get the final cost. Here each type of service is a decorator.

?? Facade

Real world example


How do you turn on the computer? "Hit the power button" you say! That is what you believe because you are using a simple interface that computer provides on the outside, internally it has to do a lot of stuff to make it happen. This simple interface to the complex subsystem is a facade.

?? Flyweight

Real world example


Did you ever have fresh tea from some stall? They often make more than one cup that you demanded and save the rest for any other customer so to save the resources e.g. gas etc. Flyweight pattern is all about that i.e. sharing.

?? Proxy

Real world example


Have you ever used an access card to go through a door? There are multiple options to open that door i.e. it can be opened either using access card or by pressing a button that bypasses the security. The door's main functionality is to open but there is a proxy added on top of it to add some functionality. Let me better explain it using the code example below.





3.How to run a behaviour in software component?----Behaviour DP

2 MICS On TV (MMIICCSSOTV)

(Mediator,Memento,Interpreter,Iterator,Chain of Resp,Command,State,Strategy,Observer,Template,Visitor)


?? Chain of Responsibility

Real world example


For example, you have three payment methods (A, B and C) setup in your account; each having a different amount in it. A has 100 USD, B has 300 USD and C having 1000 USD and the preference for payments is chosen as A then B then C. You try to purchase something that is worth 210 USD. Using Chain of Responsibility, first of all account A will be checked if it can make the purchase, if yes purchase will be made and the chain will be broken. If not, request will move forward to account B checking for amount if yes chain will be broken otherwise the request will keep forwarding till it finds the suitable handler. Here A, B and C are links of the chain and the whole phenomenon is Chain of Responsibility.

?? Command

Real world example


A generic example would be you ordering a food at restaurant. You (i.e. Client) ask the waiter (i.e. Invoker) to bring some food (i.e. Command) and waiter simply forwards the request to Chef (i.e. Receiver) who has the knowledge of what and how to cook. Another example would be you (i.e. Client) switching on (i.e. Command) the television (i.e. Receiver) using a remote control (Invoker).

? Iterator

Real world example


An old radio set will be a good example of iterator, where user could start at some channel and then use next or previous buttons to go through the respective channels. Or take an example of MP3 player or a TV set where you could press the next and previous buttons to go through the consecutive channels or in other words they all provide an interface to iterate through the respective channels, songs or radio stations.

?? Mediator

Real world example


A general example would be when you talk to someone on your mobile phone, there is a network provider sitting between you and them and your conversation goes through it instead of being directly sent. In this case network provider is mediator.


?? Memento

Real world example


Take the example of calculator (i.e. originator), where whenever you perform some calculation the last calculation is saved in memory (i.e. memento) so that you can get back to it and maybe get it restored using some action buttons (i.e. caretaker).

?? Observer

Real world example


A good example would be the job seekers where they subscribe to some job posting site and they are notified whenever there is a matching job opportunity.

?? Visitor

Real world example


Consider someone visiting Dubai. They just need a way (i.e. visa) to enter Dubai. After arrival, they can come and visit any place in Dubai on their own without having to ask for permission or to do some legal work in order to visit any place here; just let them know of a place and they can visit it. Visitor pattern let's you do just that, it helps you add places to visit so that they can visit as much as they can without having to do any legwork.


?? Strategy

Real world example


Consider the example of sorting, we implemented bubble sort but the data started to grow and bubble sort started getting very slow. In order to tackle this we implemented Quick sort. But now although the quick sort algorithm was doing better for large datasets, it was very slow for smaller datasets. In order to handle this we implemented a strategy where for small datasets, bubble sort will be used and for larger, quick sort.


?? State

Real world example


Imagine you are using some drawing application, you choose the paint brush to draw. Now the brush changes it's behavior based on the selected color i.e. if you have chosen red color it will draw in red, if blue then it will be in blue etc.

?? Template Method

Real world example


Suppose we are getting some house built. The steps for building might look like
  • Prepare the base of house
  • Build the walls
  • Add roof
  • Add other floors The order of these steps could never be changed i.e. you can't build the roof before building the walls etc but each of the steps could be modified for example walls can be made of wood or polyester or stone.


Clara P.

Vice President | Senior Architect | CompTIA Security+ | Cloud Adoption

6 年

Wow how simple it is with real life examples !!! Great work Brahmananda

要查看或添加评论,请登录

Brahmananda Kar的更多文章

  • Gradient descent

    Gradient descent

    Gradient descent is a widely used optimization algorithm in machine learning and artificial intelligence. It is used to…

  • Master in SQL in 10 min

    Master in SQL in 10 min

    It is required to hands-on on SQL for multiple reason .Below query designed in such a way that go to start as there no…

  • Kubernete Usecases

    Kubernete Usecases

    UseCase :1 From an automation perspective, Since selenium grid confirm of high availabity of node to distribute test…

  • Decomposition of data analytics

    Decomposition of data analytics

    Data analytics is combination of data science , deep learning and big data (+7TB) Data science : math, structured…

  • CI & CD in cloud with JenkinFile

    CI & CD in cloud with JenkinFile

    Background: Historically jenkins served as continuous integration and then moved to continuous delivery tool . Life…

  • What problem docker solves

    What problem docker solves

    1.Background Since inspection of agile methodology , cycle time is very unfair for testing guys to put ui/api test…

  • Time and space complexity in simple way

    Time and space complexity in simple way

    When we look at any computer program ,on first hand it should perform its requirement that is functional criteria . To…

    1 条评论
  • What is test Automation ?

    What is test Automation ?

    So many buzz word flowing around us and still trying to understand test automation. If you consider software components…

社区洞察

其他会员也浏览了