Decorator Design Pattern | Low Level Design | OOPS | Java | Best Video to Understand

0:00 - Real Life Use Case of Decorator Pattern
1:55 - Understanding Decorator Pattern from an OOPS Point of View
6:25 - Code Demonstration
🔴 Connect with me on Instagram - / code.blooded.voyager and ask me doubts 1:1. Would try to reply to each one of you.
🔴 Amazon SDE Revision Sheet : • Video
🔴 Join My Telegram Channel for Placement Updates and attend my Free Live Classes on DS Algo - telegram.me/riddhi_dutta
🔴 Connect with me on LinkedIn - / riddhi-dutta
🔴 Graph Placement Series From Scratch - • Graphs - The Ultimate ...
🔴 Link to my TopicWise SDE Sheets Playlist : • Trees SDE Coding Probl...
Tags
#designpatterns #builderpattern #lld #oops #java

Пікірлер: 41

  • @ShwetaKarolMinhas
    @ShwetaKarolMinhas3 ай бұрын

    Great explanation ! For all confused about why use decorator at all, please see that the decorators do not have an existence by themselves and are useful only in conjunction with the main product. Instantiating cheese just by itself has no meaning, it is not a burger type, it is an add on. It has to have a burger instance for it to exist. That's why decorator class and the reason why this is a 'structural' pattern. However, I do feel that the Builder pattern can be used by the client code to build the final add-on decorator product, and the 2 products - burger and add-on decorator can finally be processed. @rite2riddhi please comment on this question.

  • @amitrajitdas31
    @amitrajitdas312 жыл бұрын

    Great! helping me revising my OOP concepts as well as getting some insights on LLD and Design Patterns.

  • @sandeepsinghchauhan1198
    @sandeepsinghchauhan11988 ай бұрын

    Hi Riddhi, you are really great at explaining end to end in simple way... Please add other remaining design pattern videos as well. Thanks buddy.

  • @adhrit1426
    @adhrit14266 ай бұрын

    Top notch explanation with great clarity. Thanks

  • @manishasingh-de8hi
    @manishasingh-de8hiАй бұрын

    great explaination. Now I just feel like having a burger.

  • @JayShah_._._
    @JayShah_._._22 сағат бұрын

    Why do we need another abstract class birgerdecorator and not use the burger class itself ?

  • @DileepV-on7wk
    @DileepV-on7wkАй бұрын

    great explanation ::Thanks

  • @girishgarg2816
    @girishgarg2816 Жыл бұрын

    Same can also be done by Builder pattern. For eg: Builder.addCheese(true).build(). The builder would be part of the Burger abstract class and since TandooriBurger and ZingerBurger extend Burger, so they will also get the Builder.

  • @vamsimudaliar7931
    @vamsimudaliar79317 ай бұрын

    Thanks for the explaination. Great video, I have a question. how can we remove items from the decorated burger ? Please suggest

  • @iamnoob7593
    @iamnoob759326 күн бұрын

    Nice

  • @kaushalcavale7596
    @kaushalcavale75962 жыл бұрын

    Very nice video. Thanks for making it

  • @rite2riddhi

    @rite2riddhi

    2 жыл бұрын

    Thanks man

  • @prathamj2215
    @prathamj2215 Жыл бұрын

    Understood! And also hungry now!😂

  • @hiteshza4692
    @hiteshza4692 Жыл бұрын

    Hi, great content & explanation, appreciate it. How can I get the code you wrote? could you share it?

  • @rishav144
    @rishav144 Жыл бұрын

    great video ...pls cover more design patterns

  • @rite2riddhi

    @rite2riddhi

    Жыл бұрын

    Yes sure.

  • @shubhampokhriyal8491
    @shubhampokhriyal84912 жыл бұрын

    great content 🎉

  • @rite2riddhi

    @rite2riddhi

    2 жыл бұрын

    Thanks

  • @nithinnarayanansaravanan7792
    @nithinnarayanansaravanan7792 Жыл бұрын

    Sir, are decorators always abstract? If it is festival time and we need to introduce some cost discounts, we can directly write the common function inside the decorator class instead of changing both cheese and mayonnaise classes.

  • @deepalirathod4929
    @deepalirathod49294 ай бұрын

    Please add more videos in this series .

  • @alikagarwala210
    @alikagarwala2102 жыл бұрын

    Great 💖

  • @rite2riddhi

    @rite2riddhi

    2 жыл бұрын

    Thanks

  • @rajsrivastava1362
    @rajsrivastava13622 жыл бұрын

    ThankYou for this highly informative video. I have one question, Can you please tell why can't we use a Builder pattern here, to make the Burger with all extra toppings (where all different toppings implement an interface), and then appending / adding topping's description and cost with burger's description and cost with every topping added and then finally build the burger.

  • @rite2riddhi

    @rite2riddhi

    2 жыл бұрын

    Um you can. But this ideally seems a better way. Because most of the time your burger gonna contain null values. And in the cost() , there would be lot of null checks. Code readability :)

  • @tuhinmukherjee8141
    @tuhinmukherjee81412 жыл бұрын

    Alternately, the Burger Decorator could keep a pointer to the Burger instance which would have been passed to it through it's constructor. Anyway, both seem fine.

  • @prathamj2215

    @prathamj2215

    Жыл бұрын

    I wanted to know which is a good practice considering scalability/extensibility? Passing the burger instance by reference or passing the burger instance's copy? (By value)

  • @mansinawani8970
    @mansinawani89705 ай бұрын

    I want to eat zinger burger after watching this video.

  • @raghunadh_g
    @raghunadh_g2 жыл бұрын

    Didn't understand the use of Decorator abstract class here.. ExtraCheese class can also be the direct child of the Burger abstract class right? Am I missing something here 🤔

  • @obsessiveDreamer

    @obsessiveDreamer

    2 жыл бұрын

    I was also thinking the same doubt, why do we need to make an extra abstract class? if we can achieve the same result by just inheriting the burger class. But I think He is doing that, just for the sake of differentiation between burgers and decorators as well as the readability of code.

  • @dhandobykashyapkale

    @dhandobykashyapkale

    Жыл бұрын

    @@obsessiveDreamer Makes Sense

  • @easward
    @easward7 ай бұрын

    Not Cheese miyo, the explanation is butter

  • @rahulshit8766
    @rahulshit8766 Жыл бұрын

    codee dada?

  • @lovleshbhatt7797
    @lovleshbhatt77975 ай бұрын

    what is the point of adding this BurgerDecorator , can't we directly do this in the ExtraChesse Class?

  • @rajrangwani5669

    @rajrangwani5669

    5 ай бұрын

    Currently doesn't seems to have use-case of BurgerDecorator, as it is just empty abstract class, but in some cases we might need this layer, let's say for coffee maker, there can be a chocolate topping and there can be multiple chocolate types like dark chocolate, standard chocolate, etc. and all these type of chocolates should have some common property of chocolate, in that case chocolateDecorator with common property of chocolate will be required an abstract class.

  • @girishdoddi7698

    @girishdoddi7698

    Ай бұрын

    Here he added the burger object in both cheese and mayonnaise classes, but we can use decorator class to create the object right there without doing the same work multiple times in addons of cheese classes.

  • @neelanshgulati2643
    @neelanshgulati2643 Жыл бұрын

    Do we actually need the decorator class, I mean we can simply extend burger class for with cheese and mayo?

  • @rite2riddhi

    @rite2riddhi

    Жыл бұрын

    Otherwise how would you differentiate a normal burger like a zinger burger and a burger decorator?

  • @codewithnirmal

    @codewithnirmal

    Жыл бұрын

    @@rite2riddhi I think the decorator class may be needed if we need to add a decoration like smilies or any other shapes into our Burger. Correct me If I was wrong.

  • @sayankarmakar13
    @sayankarmakar1311 ай бұрын

    Hey riddhi One suggestion is that please speak slowly and apart from this everything is good.

  • @siddharthdutta2946
    @siddharthdutta2946 Жыл бұрын

    We dont need watch memes or stupid video clips during the video.