Тёмный

4. Decorator Design Pattern Explanation with Java Coding, LLD System Design, System design interview 

Concept && Coding - by Shrayansh
Подписаться 110 тыс.
Просмотров 73 тыс.
50% 1

Hi, in this video we have covered #decoratorPattern out of many design pattern which is asked in Low level system design interview.
➡️ Become a Member: / @conceptandcoding

Опубликовано:

 

11 май 2022

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 310   
@ashutoshkumar4565
@ashutoshkumar4565 Год назад
I always wondered why "is-a" and "has-a" relationship between objects is even worth mentioning, but now I know just how important they are. It's amazing how a small detail like this can completely change the way we approach programming.
@ConceptandCoding
@ConceptandCoding Год назад
Glad to know that
@user-pq6xi2bb9o
@user-pq6xi2bb9o 5 месяцев назад
Just can not believe that this piece of gem is free on youtube !! Really appreciate your efforts. :)
@sagar1691
@sagar1691 5 месяцев назад
I worked in both product and service industry of small, medium and large size company, i can see the clear understanding and explanation by the narrator on each of the topic and make an analogy to live code in my work. Very well explained in details, that too free of charge ,i recommend these videos to all the freshers or laterals who are working in java for upskilling.
@tarunkundhiya5196
@tarunkundhiya5196 Год назад
Nice point : both isA and hasA property is needed! Awesome Explanation!
@TECH_PANDA_23
@TECH_PANDA_23 3 месяца назад
very good explanation is the best, simplicity is the base here and visual representation is toppings
@sravanakirtana2787
@sravanakirtana2787 3 месяца назад
Awesome explanation Sir. Thank you very much
@wul_frik
@wul_frik Год назад
Amazing concept, learning LLD is really an eye-opener. Thanks for this amazing video and explanation.
@ConceptandCoding
@ConceptandCoding Год назад
Thank you, pls do share it with your connections 😊
@VinayakKhairnar-bb7oc
@VinayakKhairnar-bb7oc Месяц назад
'Has a' and 'is a' make concept much simpler to understand. Good point you make to explain.
@patrisrikanth
@patrisrikanth 5 месяцев назад
Unbelievable that we are getting this video for free of cost.... Awesome explanation.
@kartikag01
@kartikag01 3 месяца назад
bhai ne kuch videos paid kr di 😁
@programming6556
@programming6556 3 месяца назад
Great job Shrayansh .
@princesharma-wi3kn
@princesharma-wi3kn Месяц назад
Thank you so much for the detailed explanation :)
@adhyanneekhra4853
@adhyanneekhra4853 Месяц назад
🤯🤯🤯🤯🤯 Swaad hi agya 😋😋😋😛. Thanks Shreyansh for this Amazing vedio series. Great content. And Beautifully explained.
@homestaysandcafes
@homestaysandcafes Год назад
Very Well explained sir!
@omkarsharan3967
@omkarsharan3967 Год назад
The way you explain with examples it makes the concept very clear..Keep it up and thank you very much :)
@ConceptandCoding
@ConceptandCoding Год назад
Glad it helped!
@ayushigupta685
@ayushigupta685 5 месяцев назад
I really appreciate your efforts thankyou so much😇😇😇😇👏👏👏👏👏
@akshaymahajan9626
@akshaymahajan9626 5 месяцев назад
Great work !
@mrfred456123
@mrfred456123 6 месяцев назад
Amazing explanation
@cybergurucool2632
@cybergurucool2632 Год назад
Superb explanation. To recollect decorator pattern, I will remember the pizza example. Thanks a lot of this super useful video.
@ConceptandCoding
@ConceptandCoding Год назад
Welcome
@realthings7931
@realthings7931 Год назад
Great Explanation. Thanks for the video🙏
@ConceptandCoding
@ConceptandCoding Год назад
thank you
@parasmyname784
@parasmyname784 Год назад
Awesome, simply awesome
@ConceptandCoding
@ConceptandCoding Год назад
Thank you
@Narendra-Pratap-singh
@Narendra-Pratap-singh Месяц назад
thanks for the video
@harshinredzone
@harshinredzone Год назад
Thanks for sorting it in "reverse" order. Glad that you considered the feedback. 😀
@ConceptandCoding
@ConceptandCoding Год назад
👍
@guptajicodes
@guptajicodes 6 месяцев назад
I really understood this design pattern. thank you sir for wonderful explaination
@ConceptandCoding
@ConceptandCoding 6 месяцев назад
thank you
@theunusual4566
@theunusual4566 Год назад
Thank you sir for another awesome video.
@ConceptandCoding
@ConceptandCoding Год назад
Thank t
@hbolchatwar5308
@hbolchatwar5308 Год назад
Very good explanation with code...u did awesome job. really thanks a lot.
@ConceptandCoding
@ConceptandCoding Год назад
Thank you
@yashgupta6726
@yashgupta6726 Год назад
Wish had explored your channel a bit earlier, awesome content on Low-level design(one-stop solution), Just feedback if you can arrange the videos of the playlist in what order to watch it will be really great for people.
@ConceptandCoding
@ConceptandCoding Год назад
Thank you Yash, not sure if youtube does not show playlist title and description, i have mentioned in both the place that Start from bottom and move Upward, let me check
@sameerchoudhary8590
@sameerchoudhary8590 5 месяцев назад
Great explanation. But I need to revisit the example once again.
@simplymaths5487
@simplymaths5487 Год назад
Thanks for this playlist sir. Means a lot to us
@ConceptandCoding
@ConceptandCoding Год назад
Thank you
@adityarout1276
@adityarout1276 Год назад
I can totally relate Decorator Design Pattern now, yestarday only i ate the 'PIZZA' now i'm learning and watching it. 😃✌
@ConceptandCoding
@ConceptandCoding Год назад
:)
@DivineVision201
@DivineVision201 Год назад
Thanks Shreyansh. Video is very helpful in understanding. I have implemented the same in python. Awesome initiative
@ConceptandCoding
@ConceptandCoding Год назад
Glad to hear that
@pranav8937
@pranav8937 22 дня назад
J is silent in jalapeno😅. Rest video was awesome!!
@sundergopalsingh
@sundergopalsingh 7 месяцев назад
Amazing video Shrayansh!!
@ConceptandCoding
@ConceptandCoding 7 месяцев назад
Thanks paji
@imranmohamed5467
@imranmohamed5467 Год назад
Nice video. You can add the main class with example of creation of these objects and using them that would help understand the concept better.
@satyampandey6633
@satyampandey6633 8 месяцев назад
public class PizzaShop { public static void main(String[] args) { BasePizza base = new VegDelight(); System.out.println(base.cost()); BasePizza customPizza = new ExtraCheese(new Mushroom(new Farmhouse())); System.out.println(customPizza.cost()); } }
@kalravsharma178
@kalravsharma178 Год назад
Great Video , thanks a lot
@ConceptandCoding
@ConceptandCoding Год назад
Glad you liked it!
@zaheerabass7955
@zaheerabass7955 11 месяцев назад
Thank you so much for the amazing contents
@ConceptandCoding
@ConceptandCoding 11 месяцев назад
Thank you
@amitgupta-or5nm
@amitgupta-or5nm Год назад
Great expansion 😃 ....
@ConceptandCoding
@ConceptandCoding Год назад
Thank you
@durgeshrai04
@durgeshrai04 Год назад
Awesome Explantion
@ConceptandCoding
@ConceptandCoding Год назад
Thank you
@manashimazumder7185
@manashimazumder7185 Год назад
Great content. First time i am feeling confident about LLD. Please share your knowledge more with us :)
@ConceptandCoding
@ConceptandCoding Год назад
Thanks there is a complete in depth playlist Manashi:)
@manashimazumder7185
@manashimazumder7185 Год назад
@@ConceptandCoding Yes am checking. Thanks again for the content.
@sumitbasu5146
@sumitbasu5146 Год назад
Thank you sir..today I start calling u sir..Thank you for ur efforts 🙏
@ConceptandCoding
@ConceptandCoding Год назад
Thanks a lot buddy but call me Shrayansh, we both are students,let's keep learning and sharing
@saifurrahmanbhuiyan925
@saifurrahmanbhuiyan925 Год назад
Such awesome content, then its free. i cant explain how satisfied i am satisfied with your content. Thanks a lot bro. i have one request bro, whether you provide content free or paid, it does matter. just keep up. i have seen lots of videos and read books regarding design pattern. nobody explained like you. one thing makes your content unique, you deeply explain OOP concept behind design pattern.
@ConceptandCoding
@ConceptandCoding Год назад
Thanks Saifur
@your_name96
@your_name96 Год назад
really thank you sir for your huge efforts, but sir, if we keep a final ingredients price Map in Base Pizza itself, and keep Topping Map containing topping and its frequency, this can be solved much simply for calculating the price, but then again that solution is not scalable ig when toppings list and price need to be updated, thanks again.
@prashantgupta6160
@prashantgupta6160 Год назад
thoda nhi, bahut useful h bhai, please continue LLD series, you are one of best educators on RU-vid
@ConceptandCoding
@ConceptandCoding Год назад
thank you Prashant. means lot to me.
@arshalakhan567
@arshalakhan567 Год назад
Such a great content!:)
@ConceptandCoding
@ConceptandCoding Год назад
Thank you so much!
@parag-kumar
@parag-kumar 11 месяцев назад
Great explanation! :)
@ConceptandCoding
@ConceptandCoding 11 месяцев назад
Thank you
@hiren6691
@hiren6691 2 года назад
keep going :)
@harshilgupta9225
@harshilgupta9225 Год назад
Maza Aagya respect++
@ConceptandCoding
@ConceptandCoding Год назад
Thanks
@naveentmyug
@naveentmyug 7 месяцев назад
Very thanks
@DurgaShiva7574
@DurgaShiva7574 Год назад
this video is a GEM to the whole community, that too by a GEM..... hats off 2 u sir.. all this premium content for free , not possible on this whole planet itself,.... wish the java playlist would also become public / free someday , so that it can reach to every deserving candidate who cant afford the subscription at that point of time... s teachers like you are rare to find, your knowledge is uncomparable...
@ConceptandCoding
@ConceptandCoding Год назад
Thanks buddy
@HimanshuKumar-xz5tk
@HimanshuKumar-xz5tk Год назад
great!
@harishpareek6933
@harishpareek6933 Год назад
Thank you sir for this Amazing content. I have only one question that for every layer we have to create a new class so if our application will scale too much in that case we might have thousands of layers (Not specifically Pizza problem) so how can we solve that ?
@shatrudhankumar7824
@shatrudhankumar7824 4 месяца назад
Awesome😍
@ConceptandCoding
@ConceptandCoding 4 месяца назад
Thanks
@ayushsamyal9070
@ayushsamyal9070 Год назад
Hi, Thanks for the great explanation. One small request could you please share the notes and the code that you are using for the explaination in each video. It would be beneficial.
@ConceptandCoding
@ConceptandCoding Год назад
Noted, will do it from now
@HEMANTVERMA-pv2pe
@HEMANTVERMA-pv2pe Год назад
Thanks for the great content! Your videos are easy to understand. Can we please reorder the videos in the order, currently its in reverse order and we have to play videos manually each time.
@ConceptandCoding
@ConceptandCoding Год назад
Thank you, sure let me check
@NeverGiveUp186
@NeverGiveUp186 Год назад
Another use case for this pattern is the avatar creation system in WhatsApp/FB
@kushal7966
@kushal7966 11 месяцев назад
Thank You
@ConceptandCoding
@ConceptandCoding 11 месяцев назад
Thank you
@vivekthakur1953
@vivekthakur1953 Год назад
You should create video where you clearly stat the differences between "HAS- A" and "IS -A" relationship which will help many people
@ConceptandCoding
@ConceptandCoding Год назад
I think in 1 video i did that Vivek, if not then do check the first video of "Live LLD" playlist in that i must have explained it
@ananddidwania3799
@ananddidwania3799 Год назад
Here is the timestamp ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE--UjjfzJ574w.html to understand "IS-A" and "HAS-A" relationship
@bhavyemalhotra1584
@bhavyemalhotra1584 16 дней назад
will the code break if we remove has a relationship(don't extend) in toppingdecorator? I think it will not break atleast in your example
@sagarbiradar1104
@sagarbiradar1104 Год назад
You are awesomeee🔥🔥❤
@ConceptandCoding
@ConceptandCoding Год назад
Thank you
@sagarbiradar1104
@sagarbiradar1104 Год назад
@@ConceptandCoding
@utkarshjaiswal7224
@utkarshjaiswal7224 3 месяца назад
Can we use interface instead of abstract class..I both in this case both will work fine
@Mmmmmkoogfssdvbhvggg
@Mmmmmkoogfssdvbhvggg 7 месяцев назад
In my approach, I used an interface for defining a behavior and then created multiple concrete classes implementing this interface, each representing a different behavior. This seems somewhat similar to the Decorator Pattern, where each decorator wraps an object and adds its behavior. However, I'm struggling to see a significant advantage of the Decorator Pattern over my approach in terms of scalability, flexibility, and maintainability, especially when considering the addition of new behaviors. In both cases, adding a new behavior seems to require just adding a new class without modifying existing ones. Could you help clarify the specific advantages of using the Decorator Pattern over this approach?
@kunalsuryavanshi7650
@kunalsuryavanshi7650 5 месяцев назад
You have created A,B C different concrete classes. If you want to create new concrete classes with properties of lets say B , with decorator pattern you will have B1 , B2 etc. But without decorator pattern you might have to write more code to not only include the property of B but also its own new property. I hope this helps.
@DevanshChiluka
@DevanshChiluka 3 месяца назад
@soumakpoddar4372
@soumakpoddar4372 3 месяца назад
can we not use interfaces instead of abstract classes ?
@himanshuchhikara4918
@himanshuchhikara4918 4 месяца назад
why you used abstract class , can we use interfaces also ?
@pulakammalathy6968
@pulakammalathy6968 11 дней назад
why is base pizza and topping decorator abstarct classes ? can they be interfaces? Iam not able to justify this point properly
@ShivamVerma-ut6nk
@ShivamVerma-ut6nk Год назад
please make a video on is-a and has-a concept with an example. Its very confusing.
@preethisubbu7460
@preethisubbu7460 11 месяцев назад
Adding English subtitle would be really helpful for larger community.
@ConceptandCoding
@ConceptandCoding 11 месяцев назад
Yes will work on old video, but all latest videos are in English only
@umangmalhotra1222
@umangmalhotra1222 Год назад
2023 New Year Resolution -> Watching 1 video from Concept && Coding YT Channel everyday . Update -> Finished this 4th video in LLD Playlist today.
@ConceptandCoding
@ConceptandCoding Год назад
Hope you will find the content useful 🙏
@satishkumpatla5848
@satishkumpatla5848 4 месяца назад
Please explain when to use decorator pattern and builder design pattern and differemces. Both seems similar.
@developerDebanjan
@developerDebanjan 6 месяцев назад
How is a topping "is-A" basePizza? Does that make sense?
@shreyashachoudhary480
@shreyashachoudhary480 Год назад
Super clear, I had a doubt: So according to this example "ExtraCheese" is a BasePizza due to indirect inheritance. So in Vehicle example, the decorator would extend the BaseVehicle. Power Steering would inherit from decorator and in-directly have a "is-a" relationship with BaseVehicle, right So in a way we are saying power-steering is a BaseVehicle so is it right? As power steering is not a Vehicle rather its a feature
@ConceptandCoding
@ConceptandCoding Год назад
Correct, if you want this pattern and design car with this way. Then you are right
@nishantkumar6116
@nishantkumar6116 Год назад
Does Response Wrapper that is being used while paasing responses from API also follows decorator pattern?
@ConceptandCoding
@ConceptandCoding Год назад
kind of you can say, but thats a good thinking
@AbhilashPareek
@AbhilashPareek Год назад
ExtraCheese and mushroom can also extend basePizza right? Why do we have another abstract class in between?
@ayushjain7748
@ayushjain7748 Месяц назад
Exactly. I have the same question in my mind.
@travelwsamad
@travelwsamad 5 месяцев назад
Others : Learning Decorator Pattern from this Video Meanwhile me -> Learning and Ordering a Margarita Pizza after watching 😂
@ConceptandCoding
@ConceptandCoding 5 месяцев назад
:)
@allaboutcricket7728
@allaboutcricket7728 Год назад
Hi Sir, I have 1 question, when both the classes, ExtraCheese and Mushroom have the BasePizza object, then why not add it as part of the ToppingDecorator class itself?
@ConceptandCoding
@ConceptandCoding Год назад
Ack. Will get back to you by eod
@ayushdas17
@ayushdas17 Год назад
By the Dependency Inversion Principle classes should depend on interfaces or abstract classes rather than concrete classes.
@user-et1lp1kp4m
@user-et1lp1kp4m 10 месяцев назад
Can you show the working demo as well. Need to understand how is main working. Based on input(order is magaretia plus extra cheese etc..)?
@Suryabasettydustin
@Suryabasettydustin Год назад
I could be wrong but, can this problem of multiple object permutations be solved by builder pattern also?
@kavyababu7
@kavyababu7 10 месяцев назад
I have the same question. Since the Pizza problem comes more in a object creational use case, wouldn't builder pattern fit more for this use case. Decorators are used to modify the functionality of an object in runtime. Using decorator for object creation puts the object in an inconsistent state till all the decorators are completed. In real scenarios, decorator would be useful, when we need to stack up the operations like encoding a file and then compressing etc.
@shubhamtrivedi2155
@shubhamtrivedi2155 Месяц назад
Do you have any github repo for notes or doc link ?
@sidharthkumar5303
@sidharthkumar5303 5 месяцев назад
Thanks!
@ConceptandCoding
@ConceptandCoding 5 месяцев назад
thanks a lot buddy for super thanks 🙏
@sidharthkumar5303
@sidharthkumar5303 5 месяцев назад
@@ConceptandCodinghello sir , i want to become member so I can access all your videos of this lld series. Please tell me the process
@ConceptandCoding
@ConceptandCoding 5 месяцев назад
at channel home page you will find the join button, there you can join “Unlock LLD, HLD..” one
@sidharthkumar5303
@sidharthkumar5303 5 месяцев назад
@@ConceptandCoding thanks joined
@singhji4149
@singhji4149 9 месяцев назад
One very important question sir ji, when to interfere and when to use abstract can u make a detailed video in this, i think this will solve many questions of LLD in a thinking way
@ConceptandCoding
@ConceptandCoding 9 месяцев назад
When you want 100% abstraction go for interface, else go for Abstract class
@singhji4149
@singhji4149 9 месяцев назад
Yes, i know this, but while in interview when we say that i will create an abstract class or interface or concrete class they always ask why so? Why not interface inplace of abstract class, this is has been asked alot. So just a request when ever u make any any interface or abstract class please tell us the why interface or abstract please 🙏
@kartikag01
@kartikag01 3 месяца назад
Can we have array if Toppings in Pizza Class and while calc cost in Pizza class add topping's cost also. 🤔
@samyakjain8079
@samyakjain8079 3 месяца назад
Duplication in cheese and mushroom
@nisarggogate8952
@nisarggogate8952 2 месяца назад
Firstly loving your videos! So thanks for that Q. Is this really good to do something like new ExtraCheeze( new ExtraPanner(new FarmHousePizza())))... B'coz not Basepizza object in ExtraCheese already contains a topping of ExtraPanner.... While if we were not to use Decorator design pattern... We would have had all the toppings on same level... (May be with a boolean flag) It might matter if we don't want cheese on top of panner but panner and cheese mixed very well... (Sty could not think of a better example)
@akhilsharma1778
@akhilsharma1778 Год назад
Why are we using ToppingDecorator? If we are anyways inheriting Extracheese then can't we inherit it directly from BasePizza as we aren't doing anything in ToppingDecorator class?
@niwanshumaheshwari4534
@niwanshumaheshwari4534 Год назад
So here inheritance is only used for type matching and composition is used to get the behaviour.
@sumitbasu5146
@sumitbasu5146 Год назад
It will give us flexibility in future
@gunjanyadu865
@gunjanyadu865 Год назад
Hi great videos. Can you please share the notes or code that you writing ? Moreover, when will the whole LLD playlist be completed? Eagerly waiting to complete all.
@ConceptandCoding
@ConceptandCoding Год назад
When it will be completed it will be difficult for me to say. I am going with 1 video a week for now. But i am consistent
@sloppybug9856
@sloppybug9856 Год назад
Hello sir, first of all thank you for this amazing content ❤.... I hv one question why BasePizza and ToppingDecorator abstract class are abstract classes not interface. ... Just wondering when to use abstract class and when to use interface
@ConceptandCoding
@ConceptandCoding Год назад
Generally both purpose is same to hide the implementation. Interface provide 100% abstraction, while in abstract class you can also implement some methods which are common to child classes
@ksaloni
@ksaloni 7 месяцев назад
For the pizza making or adding accessories to car, builder design pattern seems more useful. What’s your say?
@ConceptandCoding
@ConceptandCoding 7 месяцев назад
could you please try to implement it and see what challenge you are facing.
@prashantkumar-hx1dv
@prashantkumar-hx1dv 7 месяцев назад
Sir please help. I have taken membership and it is showing member as well but not able to see the Parking lot. or other imp videos uploaded.
@ConceptandCoding
@ConceptandCoding 7 месяцев назад
Hi Prashant, to unlock LLD questions, you need "Unlock LLD, HLD, Java" membership level. I think currently you have taken "Appreciation" level one.
@user-vn5hk5gs3n
@user-vn5hk5gs3n 11 месяцев назад
Can you explain why you used decorator abstract class in between rather than extending base pizza in ExtraCheese and ExtraMushroom classes?
@shyren_more
@shyren_more 10 месяцев назад
had the same question
@FitMitDiary
@FitMitDiary Год назад
Let's say if we have a simple case as a Pizza then instead of abstract class for Base Pizza, can we use interface ?
@ConceptandCoding
@ConceptandCoding Год назад
Yes we can, if you don't want to implement any common method in that
@geekydanish5990
@geekydanish5990 2 года назад
I feel an improvment to this can be rather than creating concrete class for each topping create enum topping list class to dynamically update price for each topping
@ConceptandCoding
@ConceptandCoding 2 года назад
can you implement and show how for the same example which i took.
@geekydanish5990
@geekydanish5990 2 года назад
@@ConceptandCoding sure
@geekydanish5990
@geekydanish5990 2 года назад
from __future__ import annotations from abc import ABC, abstractmethod import enum import string from typing import List class ToppingList(enum.Enum): extra_cheese = 20.00 jalapeno = 30.00 mushroom = 10.00 chicken_tikka = 60.00 class BasePizza(ABC): @abstractmethod def get_ingregents(self) -> List: pass @abstractmethod def cost(self) -> float: pass # concrete pizza class class MargaritaPizza(BasePizza): ingredients: List = ['Cheese','Bread','Olive Oil'] def get_ingregents(self) -> List: return self.ingredients def cost(self) -> float: return 150.00 class VeggiePizza(BasePizza): ingredients: List = ['Cheese','Bread','Olive Oil','Veggies'] def get_ingregents(self) -> List: return self.ingredients def cost(self) -> float: return 200.00 class Topping(BasePizza): _base_pizza: BasePizza = None def __init__(self,base_pizza: BasePizza, topping:string) -> None: self._base_pizza = base_pizza self._topping = topping def get_ingregents(self) -> List: base_ingregents = self._base_pizza.get_ingregents() base_ingregents.append(self._topping) return base_ingregents def cost(self) -> float: return self._base_pizza.cost() + ToppingList[self._topping].value if __name__ == '__main__': base_pizza = MargaritaPizza() margarita_pizza_extra_cheese = Topping(base_pizza,'extra_cheese') print(margarita_pizza_extra_cheese.get_ingregents()) print(margarita_pizza_extra_cheese.cost()) margarita_pizza_extra_cheese_jalapeno = Topping(margarita_pizza_extra_cheese,'jalapeno') print(margarita_pizza_extra_cheese_jalapeno.get_ingregents()) print(margarita_pizza_extra_cheese_jalapeno.cost())
@geekydanish5990
@geekydanish5990 2 года назад
@@ConceptandCoding Hey does the below solution follow any anti pattern wrt to decorator design pattern
@ConceptandCoding
@ConceptandCoding 2 года назад
this code still maintains 'is-a' and 'has-a' relationship. So that is the requirement of decorator pattern . But here my concern with enum is not decorator pattern but with scalability and managebility lets say i want to add more methodd apart from Cost method like TotalCalories, totalProtein , totalCarbs etc. (lets say 10 -20 methods like this) how easy with enum to support this.
@abirpaul9027
@abirpaul9027 11 месяцев назад
Could we have used Builder design Pattern to achieve the same?
@NeverGiveUp186
@NeverGiveUp186 Год назад
Hello Sir, first of all thank you very much for the amazing content! I have one doubt. For interviews, are all the design patterns necessary ? Becoz it would be difficult to remember all of them 😅.. How much is expected from us if we have 2-3 years experience ?
@ConceptandCoding
@ConceptandCoding Год назад
Thank you. See it's a very valid question, nobody can remember all these designs patterns. Couple of things: - How many design patterns is sufficient? Very difficult to answer, what interviewer can ask, we don't know right. - How to remember all? We don't have to, just try to implement design patterns with your own examples, whatever examples i used take it as a reference and then try to implement with different example. It will help you to remember in which usecase what has to be done. Keep 5-6 design patterns on your finger tips which is very frequently asked.
@NeverGiveUp186
@NeverGiveUp186 Год назад
@@ConceptandCoding Thanks a lot Sir for the quick and detailed response!!
@princesharma-wi3kn
@princesharma-wi3kn Месяц назад
Apne saraswatya mantra liya hua hai kya bro🥰
@anirbansaha7987
@anirbansaha7987 7 месяцев назад
Hi, Suppose we have an abstract pizza class and an abstract toppings class which are inherited by concrete classes . Now, every pizza class has a list of toppings . So, when we calculate the cost, we just iterate over that list and compute the total cost. I have a big doubt that if only has-a relationship is solving this problem. Why do we need such a complex structure of has-a and is-a relationship existing at the same time and what extra advantage does decorator pattern bring into picture ?Looking forward to your reply to this question.
@ConceptandCoding
@ConceptandCoding 7 месяцев назад
okay, could you please tell me, how you would solve the scenario where you have 1000s of combination like BasePizze, BasePizze + cheese , BasePizza + mushroom, Veggie + cheese and go on...... The biggest advantage decorator pattern adds up is control on number of classes if there are so so many combinations possible.
@anirbansaha7987
@anirbansaha7987 7 месяцев назад
@@ConceptandCoding Thanks for your reply. Lets suppose Base pizza is extended by two Pizza class Veg and Non Veg Pizza. I have another ExtraAddOn class which is inherited by say cheese, mushroom, paneer and so on ... Now, I have a " vector extraList; " in Veg and Non Veg Pizza class. So, whatever combinations of ExtraAddOn you need, you can add to that list and calculate cost. Only thing is that you cannot mix the base Pizza options, but i don't think that's the requirement here. Am i thinking it wrong ?
@patrisrikanth
@patrisrikanth 5 месяцев назад
Hi, I understood this clearly, But I have a small doubt regarding Abstract class vs Interface. Can't we use Interface in BasePizza and ToppingDecorator, rather than using Abstract class? Other than this, I understood everything. Super explanation sir.
@vmalhotra98
@vmalhotra98 4 месяца назад
same question . Can anyone explain same @Concept && Coding - by Shrayansh
@litcode702
@litcode702 Год назад
can't we pass ToppingDecorator object in extraCheese or mushroom constructor?
@AnuragSharma-vi1zd
@AnuragSharma-vi1zd Год назад
Hello sir I have a question. What if now we want to remove the toppings we added. How we can do that?
@ConceptandCoding
@ConceptandCoding Год назад
We can call the topping decorator only right
@shubhamtrivedi2155
@shubhamtrivedi2155 Месяц назад
What is the significance of is-a and has-a ??
@anjumanislamiachhatarpur7093
I have a question, when we create the base parent class... how we can decide to take interface or abstract. I think both will work fine. So which one to choose in that case, could you please give a little clearity.?
@ConceptandCoding
@ConceptandCoding Год назад
If you want some method to implement in base class which child can reuse, then go for abstract else interface.
@anjumanislamiachhatarpur7093
@@ConceptandCoding tysm 🙏
@vennamurthy
@vennamurthy Год назад
Strategy Pattern & Decorator seems alike to me like IStrategy even BasePizza Can have only HAS-A relation with ToppingDecorator or list (to calculate cost for all types of toppings) right. Please help me to understand the difference , By the way thanks for the videos :) #Concept&&Coding
@ayushdas17
@ayushdas17 Год назад
I think main task of Strategy Pattern is to remove redundant code where as Decorator Pattern is used to solve the problem of maintainability of our classes.
Далее
⚡️Uylanishim kerak, sovchilikka borasizmi?...😅
00:50
🤯 #funny
00:20
Просмотров 1,5 млн
Decorator Pattern - Design Patterns (ep 3)
54:35
Просмотров 476 тыс.