Factory Method Pattern - Design Patterns (ep 4)

Поделиться
HTML-код
  • Опубликовано: 26 май 2024
  • Video series on Design Patterns for Object Oriented Languages. This time we look at the Factory Method Pattern.
    ► The playlist
    • Design Patterns in Obj...
    ► Head First: Design Patterns
    geni.us/nlbA6
    ► Design Patterns: Elements of Reusable Object-Oriented Software
    geni.us/PsXmo
    💪 Patreon Community
    / christopherokhravi
    📚 Products I Recommend
    geni.us/71ZXF

Комментарии • 774

  • @thekonax5006
    @thekonax5006 4 года назад +317

    This guy is already speaking in 1.5 speed. You are the best Christopher! Thank you

  • @kareemjeiroudi1964
    @kareemjeiroudi1964 3 года назад +134

    BTW, whenever I need a reference for design pattern, I would actually go back and watch your videos instead of Design Patterns by the gang of four, because you're incredibly good at explaining Object-Orientation concepts.
    Please keep up your awesome work!

  • @GeaForce
    @GeaForce 2 года назад +2

    Christopher: Check this book, it's really easy to understand
    Also Christopher: Man, the examples on the book are catastrophic

  • @ringo.gg.
    @ringo.gg. 7 лет назад +165

    Dude you are fuckin amazing, I haven't found any other channel that explains and make clear the concept like you did.
    Hope you make all the g.a.m.m.a patterns on this series, cheers !

  • @Mitch_Crane
    @Mitch_Crane 7 лет назад +177

    Thank you Christopher for another helpful explanation on patterns. I cannot imagine how long it takes to edit all these jump cuts. God bless.

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 лет назад +45

      Thank you for the kind words and the understanding :) It does take a long time ;) :)

    • @gurtelem3586
      @gurtelem3586 3 года назад +2

      ​@@ChristopherOkhravi You should use jumpcutter to avoid wasting all this time :-)
      github.com/carykh/jumpcutter

    • @AFPinerosG
      @AFPinerosG 3 года назад +24

      Guys! Please read this comment until the end, I know it is long but it will be worth your time if you really want to learn. I love these videos but this video is WRONG!
      This is a MISINTERPRETATION of the Factory Method pattern. This is NOT the purpose of the pattern, this is a very common misunderstanding. Be careful. I'm telling you this because I'm reading it from the Gang of Four Design Pattern book, I have it in my hand right now.
      Where did this video go wrong?
      1. When it said that the problem this pattern solves is isolating the complexity of the creation. This is NOT the purpose. Isolating the creation of the objects is the responsibility of the Abstract Factory, not Factory Method.
      2. When he said that a factory method can return several types of Products. No!! The factory method should return a SINGLE Product type (this is a little lie, but bear with me)
      The problem that is solved by this pattern is that the Abstract Creator can't know which Concrete Products should be used by each Concrete Creator, so it let's the Concrete Creators define the type of Concrete Product to be used via a factory method, which is an abstract method (Java).
      Let's say I have a Zoo class (Abstract Creator) and I have multiple types of Zoo: DogZoo and CatZoo (Concrete Creators). I also have the class Animal (Abstract Product) and the classes Dog and Cat (Concrete Products). Also, the Zoo has a List of Animals.
      OK, so let's say the Zoo has a method SpawnAnimal() that creates a new animal and adds it to the Animal List. But... Wait... Zoo doesn't know which type of animal it should add to the list! Does it add a cat? a dog? a parrot? Zoo can't know! So Zoo says "OK I will define a factory method createAnimal() so that my subclasses can tell me which type of Animal they want to use when I spawn an animal".
      So the DogZoo will return a dog in that createAnimal() method. The CatZoo will return a cat. Then when the Zoo calls the SpawnAnimal it creates the new animal with its createAnimal function.
      That's the idea of this method. The ConcreteCreators tell the AbstractCreator which ConcreteProduct to use!!!
      That's why the definition says "let subclasses define the ConcreteProduct". The purpose is NOT about isolating the creation in a separate Factory class!!! The purpose is NOT to allow switching factories on runtime to change from one behavior to another!!!
      Now that I have your attention. I lied when I said that the factory method can only return a single type of Concrete Product. There is actually a variation called the "Parameterized Factory Method" but it requires a parameter to tell the Factory Method which type of object to return in case a Concrete Creator is compatible with multiple Concrete Products.
      Going back to my example it would be something like FarmZoo and CityZoo. The farm zoo is compatible with Dog, Pig and Sheep. The CityZoo is compatible with Lion, Zebra, Hippo and Giraffe. The createAnimal() would now be createAnimal(type). That's it. So now when Zoo wants to spawn a new Animal you can tell it which type of animal to Spawn. But it won't let you spawn an animal that is not allowed.
      Now about the isolation. The Abstract Factory pattern DOES isolate the creation logic, thus, the clients create the factory and expect the factory to return a desired object to them. In the factory method there is NO client that consumes a factory expecting an object to be returned. In the factory method pattern the client of the factory method is the Abstract Creator!! The abstract creator is literally the class that "consumes" the factory method implemented by the subclasses.
      In other words, Christopher has created an Abstract Factory in which the Concrete Factories have a single Factory Method. Keep in mind that Abstract Factory can be implemented as a collection of Factory Methods OR as a collection of Prototypes.
      Please, Guys, I hope you understood this because this is a HUGE misunderstanding in the industry and most Juniors think they understand Factory Method but they really don't, they constantly confuse it with Abstract Factory because even smart teachers get it mixed up.
      I hope this was clear :) If you didn't understand, my advice is to go and read the Design Patterns: Elements of Reusable Object-Oriented Software book.

    • @MorganFreemanIsLife
      @MorganFreemanIsLife 2 года назад

      @@AFPinerosG omg ur right

    • @jvsnyc
      @jvsnyc 2 года назад +1

      @@AFPinerosG I regret I can only give this one Thumbs up!

  • @FionaCat86
    @FionaCat86 6 лет назад +11

    The example in the book confused me to no end, but you described this so clearly. I think the missing piece for me was understanding the power of encapsulating different strategies for object creation. Once I understood that, it all clicked. Thanks so much, I hope you will continue with more tutorials!

  • @tylerk3130
    @tylerk3130 5 лет назад +5

    I really appreciate you going through the logic of "Well why wouldn't we just do xyz", "we don't do that because then...". It really helped make it click that it's not just about being able to instantiate different sub-types, it's also about being able to instantiate them in specific, repeatable ways.

  • @BleachWizz
    @BleachWizz 4 года назад +29

    I think I'm understanding why you're such a good teacher.
    I can't identify how you're doing it, but you manage to move on and explain new things saying the same thing over and over and over again. But everytime you say it there's something new yo realise about it, the way you wrote the script of your videos (or just made them) is amazing.

    • @calexito9448
      @calexito9448 2 года назад +3

      Yesssss, i love to see the video once again and see that he was explaining the same concept from the beggining but i just did not understand

  • @aliki212
    @aliki212 4 года назад +2

    Amazing work!Crystal clear explanation, personalized and out of this world editing!I usually put the videos at 1.25 speed to actually keep my ear on them - yours is purely A+!Cheers!!!

  • @AC-xx1uo
    @AC-xx1uo 2 года назад +1

    Thank you for this!! I’m an absolute beginner with OOP and this is one of the only videos I’ve found that helps it make sense at my level. The visuals and examples are so great. You rock!

  • @WillEhrendreich
    @WillEhrendreich 3 года назад

    These are the best explanations of these theories on RUclips, I swear. Thank you so much for sharing your knowledge with us all.

  • @stewiegriffin6503
    @stewiegriffin6503 6 лет назад +392

    without animals and cars there wouldn't be OOP
    Every try to explain OOP uses animals and cars.

    • @kimk.m2428
      @kimk.m2428 5 лет назад +2

      Duh! Mammal enough?

    • @jason_v12345
      @jason_v12345 5 лет назад +14

      I know, right? And what's funny is that real-world OOP rarely deals with such familiar, real-world abstractions.

    • @madsteeez
      @madsteeez 4 года назад +8

      without OOP there wouldn't be animals nor card.

    • @madsteeez
      @madsteeez 4 года назад

      @@jason_v12345 I do. I work for Lufthansa Technik. I abstract aircraft engines.. I love it

    • @darkoazure9902
      @darkoazure9902 4 года назад

      Great catch! But I'm not :)

  • @nikeshdevaki
    @nikeshdevaki 4 года назад +3

    Nothing went to my mind when I watched this video for the first time. Then I went back and read this concept on "The Head First Design Patterns" book and then came back here. This time things are very relatable and visualizable. Now I following this method for all the patterns and its very helpful. I suggest the same for beginners.

  • @guilhermerenna
    @guilhermerenna 2 года назад

    Your videos are awesome! I have watched them all in the past, and I continuously come back to them and use them as a reference. I can't thank you enough!

  • @SuperTurboCrash
    @SuperTurboCrash 6 лет назад +45

    The editing in this video gave me heart palpitations.

    • @ChristopherOkhravi
      @ChristopherOkhravi  6 лет назад +29

      +SuperTurboCrash Terribly sorry about that and I hope you are ok :) But hopefully the information per second ratio was quite high?

    • @tomiekk6255
      @tomiekk6255 3 года назад +4

      actually IMO it was pretty good, at least it's easier to not resign, or fall asleep when something is constantly happening. Perfect for my sleepy day like today:P Thanks @Christopher for this vid. I barely can remember when was the last time I was that much into viewing something on design patterns.

    • @loganfeiler2412
      @loganfeiler2412 3 года назад

      I actually found it quite entertaining to watch, partly because of all the jump edits, and the subject content was explained very well.

  • @kaangecir9391
    @kaangecir9391 6 лет назад +3

    Mate i just love your attitude :) Learned a ton of things from you. Please keep it going, especially code walks series. It really helps us to look on a broader perspective. Take care!

  • @mbesurich
    @mbesurich 2 года назад +7

    This is the best explanation of this pattern! What could be better? Personaly for me - to show an example of what different way of creating products can contain different factories. This could help me to understand more clearly the benefit of using factories versus creating straight the products. But anyway, thank you very much for such understandable information delivery!

  • @tobylifers3390
    @tobylifers3390 Год назад +3

    This guy's energy is the best.

  • @justai3766
    @justai3766 3 года назад

    Your communication style is amazing. The way you explain these concepts is one of the best. Thank you!

  • @obinnaubah9045
    @obinnaubah9045 5 лет назад +1

    The Asteroid example really helped drive home the point. I'm still not completely clear about a lot of things but I have a lot more clarity. Thank you very much!

  • @hraynaud
    @hraynaud 6 лет назад

    Christopher this is awesome. I feel like I always have to review this stuff because sometimes I can't be sure if I truly understand it or not and you make it so clear. Very well done my man!

  • @safakhan8177
    @safakhan8177 2 года назад +1

    Thank you Christopher! The example of the game development is brilliant! I think I will always keep that bit in mind whenever I hear the term factory.

  • @KuzyoYaroslav
    @KuzyoYaroslav 2 года назад

    This is just awesome, I have never thought its possible to explain those patterns so interesting with just white board. Thanks for you work.

  • @honey30prachi
    @honey30prachi 5 лет назад +2

    i just love your way of explaining difficult things. Seriously these videos are very helpful

  • @drapala97
    @drapala97 День назад

    i love this channel so much, Mr. Okhravi is a bless for the community. God bless you

  • @nishanckarunatillake3361
    @nishanckarunatillake3361 7 лет назад +5

    Hi, I think this is a fantastic set of tutorials. I found it really useful. Hope you will find more time and energy to progress though the book quickly and not give up.

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 лет назад +1

      Thanks for the encouragement! I'm very glad they're useful. Will try my best indeed.

  • @NB19273
    @NB19273 2 года назад

    Absolutely amazing tutorial, by far the best on RUclips! I finally understand the factory patter now! Thanks so much.

  • @Sam-pq2pk
    @Sam-pq2pk 3 месяца назад +1

    I come from other videos where everybody is giving great comments however the video is trash. I finally came to the right place where the explanation is actually good. Thank you Chris you should build a Java course someday!

  • @DominikRoszkowski
    @DominikRoszkowski 7 лет назад +1

    Thank you, your videos are amazing and you have an exceptional teaching talent. This is really interesting how such simple idea can be used in so many powerful ways. Thanks again!

  • @yanavalasatava9465
    @yanavalasatava9465 5 лет назад

    You are amazing and very charismatic (which is important) teacher! For someone who is new to programming and patterns your videos are of a great help! Thank you!

  • @alexandernava9275
    @alexandernava9275 6 лет назад

    I love your teaching above all others I have found! and I have watched probably five peoples stuff. Clearest definitions, great explanations, amazing diagrams that drive home the point, and you do amazing at putting everything in real understandable terms! Also your editing style is strange, but it works very well to keep my attention.

  • @ziadesaa8776
    @ziadesaa8776 2 дня назад

    After 7 years still useful and priceless ❤❤😊

  • @hereusername
    @hereusername 4 года назад +1

    Very clear explanation!
    I haven't found any other channel or video that explains the concept like you did.

  • @NoleoTheDog
    @NoleoTheDog 2 года назад

    Fan of your details and expressions. It can be seen that you do it by heart and how much you love being a teacher.

  • @Crazycannibalelf
    @Crazycannibalelf 2 года назад +1

    These are such fantastic videos, you have a true talent for teaching! Thank you so much for making them!!

  • @ManishKumar-gn1xm
    @ManishKumar-gn1xm 6 лет назад

    Hey Christ! I realy liked your all the design pattern series. You way of explaining thing is really really great. While explaining you always make sure touching all the corners and make subtle point clear. You understand each concepts very clealy and make sure it passes well to audience which is amazing. I had a teacher who passed me Mathematics like same way and which actually brought interest in Mathematics. I am finding the same experience once again. Keep it up.

  • @andypye4006
    @andypye4006 2 года назад +1

    Thanks for these videos Christopher. You have a superb, enthusiastic delivery style !

  • @elinorkent7188
    @elinorkent7188 4 года назад +1

    the best tutorial for this. watched many, but now i actually understand it.

  • @matthewkillgallon5597
    @matthewkillgallon5597 5 лет назад

    I think I will use this series for the apprenticeship scheme we run in my company.
    It's very good!

  • @hamzac.4555
    @hamzac.4555 3 года назад +4

    I was looking for a real tutorial about design pattern, when you said dont use static method, I subscribed and gave a like. Keep it up bro !

    • @40ozhemlock
      @40ozhemlock 3 года назад

      that was a moment of clarity for me too

  • @pionapior
    @pionapior 7 лет назад +207

    Like before a watch because you are a legend !

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 лет назад +10

      :D

    • @ecsweb-studio2732
      @ecsweb-studio2732 6 лет назад +9

      That man is amaizing
      he is real great actor.
      Holywood is mising real great actor.

    • @aymansafi2998
      @aymansafi2998 6 лет назад

      let hem here dude so he helps us in programming stuff :D

    • @gytisdobrovolskis5933
      @gytisdobrovolskis5933 5 лет назад +1

      Goddamn the factory pattern is already quite complicated here. And now I checked on some pluralsight tutorials - and there are a lot more complications, pitfalls and ways to do it. I think I will skip this pattern for now.

  • @extravaganza69
    @extravaganza69 5 лет назад

    Thank you for the lectures, I usually watch them after I read few chapters to confront my thoughts with yours and get a second opinion :). Always helpful, although I don't always agree. Best wishes

  • @OritNeeman
    @OritNeeman 3 года назад

    YOU ARE AWESOME!!! Thanks to you I now REALLY understand design patterns. Everything you teach is so clear and it's fun and interesting to learn from you. Thank you so much. You are the best.!!!

  • @aniruddhabhattacharjee3729
    @aniruddhabhattacharjee3729 3 года назад +1

    I came here after going through the HFDP book and somehow although having gone through the pattern twice, it was not very clear to me. It's a great content, 27 mins worth every second, gives a very clear idea going from top down approach to the design pattern. Very well explained, thank you.

  • @colococolo
    @colococolo 5 лет назад +1

    A 100% agree with you on that the example the book gives is rather hard to relate to. Your explanation helped me understand the factory patterns much better. Thanks a lot!

  • @cdmapplications
    @cdmapplications 7 лет назад +4

    Thank you so much for your time! Cant wait for the next one!

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 лет назад

      Thank you! :) Will make sure it comes sooner than later this time :)

  • @lima1877
    @lima1877 7 лет назад +232

    Just a positive comment: would be nice if you could implement these patterns into actual code after the lecture. Please release more videos!!!! Best..

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 лет назад +43

      Very good point. Thank you. I'll keep videos as priority number one but will indeed try to figure out something for the code. Thanks!

    • @pradeeph2000
      @pradeeph2000 7 лет назад +21

      May be the coding part could be an assignment for people viewing the video, it could be shared via github link or something.

    • @zebcode
      @zebcode 6 лет назад +11

      Or maybe each video could be accompanied by a play by play coding session. I think that would give you the choice of learning the theory and then seeing it in action.

    • @bwilless1
      @bwilless1 6 лет назад

      Also the book has code and it attempts to lead you down the path so that you code it yourself!

    • @zondaken
      @zondaken 5 лет назад +2

      im currently doing it :) still need to figure out how factory and abstract factory work :D

  • @IamMuldeh
    @IamMuldeh 6 лет назад +4

    Going to recommend your channel to all of my class mates.

  • @clearlyunwell
    @clearlyunwell 4 года назад

    Excellent. Engaging, beautifully explained, and a joy to learn from. Thank you so much 😊

  • @alexfish7792
    @alexfish7792 4 года назад +4

    6:59 - I had this exact opinion when I first study this chapter, so I thank you for confirming I'm not insane!

    • @alexivaylov688
      @alexivaylov688 4 года назад

      The examples they give are like "New York pizzas are thin crust" and "Chicago pizzas are thick crust". This IMO is bad because it makes it sound like the produced concrete objects are different (like they have been decorated with decorator pattern or something) while the factories stay the same. The examples in this video are better because they show the variation in the factories without decorations to the produced objects.

  • @paraspatel5763
    @paraspatel5763 3 года назад

    This was by far the best explanation of factory method pattern I found on YT. Thanks.

  • @jess_o
    @jess_o 4 года назад

    A thumbs up isn't enough, just had to tell you that this is a fantastic video and you do a great job of explaining these concepts and the needs for them.

  • @SavageStyle77
    @SavageStyle77 6 лет назад

    Looks like you high but I was surprised how clearly you understand what people need to know, what they struggle with - all your examples are TOP. And how clearly you explaied everything! One of the best teachers I ever saw. Recommended!

  • @luisfelipedasilva7128
    @luisfelipedasilva7128 2 года назад +1

    You´re incredible, man. The way you teach is awesome. I can´t get away from the video, i just want to watch more and more

  • @eduardojreis
    @eduardojreis 3 года назад +1

    Great series, I am really enjoying it! I am going to recommend this series to my webdev students.

  • @gubasso
    @gubasso 6 лет назад +2

    You are amazing!!! One of the best teacher I've ever seen!!!! Congratulations!!! And keep the awesome work!!!

    • @ChristopherOkhravi
      @ChristopherOkhravi  6 лет назад +1

      Thank you for all the exclamation points :) :) I’m very glad to hear :) Thanks for watching :)

  • @FeroChau
    @FeroChau 7 лет назад +58

    Very clear explanation!
    When I try to do unit testing, I find that it will force me to use factory pattern. Whenever any instance is instantiated in runtime, it cannot use dependency injection to inject the reference. However, if I use new operator inside the method, I cannot control the instantiation of the instance. Thus, the class cannot be tested in isolation.
    In this case, I am forced to inject a factory to the class and use the factory to create object. In this way, I could mock the factory and have a full control of the instantiation.

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 лет назад +5

      Excellent example and explanation. This should have been part of the video :) :) I agree 100%. Thanks for watching.

    •  6 лет назад +2

      That's actually an eye-opening example, thanks a lot.

    • @AAA-bo1uo
      @AAA-bo1uo 4 года назад +1

      Lucas Chau ,
      Can we have an example please? Couldn't wrap my head around injecting a factory when a dependenct is injected (or supoosed to be injected?)
      Sorry.. just didn't make sense.
      I get the point you are trying to make, just can't see the implementation or design itself :(

    • @firstnamelastname4685
      @firstnamelastname4685 3 года назад +2

      please explain "Whenever any instance is instantiated in runtime, it cannot use dependency injection to inject the reference." if you are free, thanks!!!

  • @nishantsingh1453
    @nishantsingh1453 6 лет назад +1

    The way u hold on to user's attention level is just impressive !!

  • @omiddehghan5731
    @omiddehghan5731 4 года назад

    I love the way you explain design pattern! I really do. great job.

  • @TheFlyguy31
    @TheFlyguy31 6 лет назад +1

    You have the best intro's on RUclips..They always make me laugh..lol

  • @stormybear4986
    @stormybear4986 6 лет назад +1

    I love that book and I enjoyed your presentation on factory patterns.

  • @mouhssine04
    @mouhssine04 Год назад +1

    Hello Christopher, you've really made my day, your explanation is quite stunning, great thanks for you mister, From now on, no confusion anymore about Factory Method Pattern.

  • @russiafromtheinside2776
    @russiafromtheinside2776 4 года назад

    It worth watching not even for pattern understanding but for the plot. I was like - wow, what's going to be next with these asteroids and animals? Your expressions are just amazing. Thank you very much. Subscribed.

  • @kenya6749
    @kenya6749 5 лет назад +1

    This helped SOOO much before my exam tomorrow! THANKS!!

  • @JorgeGarcia-rh1gu
    @JorgeGarcia-rh1gu 4 года назад

    So yeah, amazing explanation, away from the technical and complex words present in every article I've read so far. It's just the perfect vocabulary, the perfect explanation in conjunction with the perfect examples. Good job buddy, keep it that way

    • @ChristopherOkhravi
      @ChristopherOkhravi  4 года назад

      Much appreciated. Thank you for the kind words, the detailed feedback and for watching of course 😊😊😊

  • @brunon.8962
    @brunon.8962 3 года назад +8

    So, this is about "encapsulating" instantiation in a separate class (factory) so you don't have repeat code and/or mix it with code with different purposes. At the end everything is about separating and organizing implementations by using interfaces so nobody gets crazy trying to figure out what a program does. Imagine to read a book without chapters so you have to find each topic by entirely reading the book... No, let's isolate each part (thanks to inheritance, composition, delegation etc.) and put a name on it so we can read, understand and add code. Imagine those early spaguetti code programmers trying not to commit assasination and instead creating OOP and all these patterns.

  • @shubhamsingh-nd6wo
    @shubhamsingh-nd6wo 2 года назад

    Thank you so much man. Every single video of yours makes me feel like I found a gold mine!

  • @TheRedjinator
    @TheRedjinator Год назад

    This! This is the pace and explaination I need. Absolutely fantastic job! 😁

  • @112soa
    @112soa 5 лет назад

    Hi Christopher! First, I'd like to congratulate you on the awesome job you're doing with your videos and in particular this super useful playlist! I'm still on ep4 but great job! I would love to have a playlist of you explaining Software Architectural Patterns. Again thank you and keep up posting videos for us! :)

  • @mattotoole4327
    @mattotoole4327 6 лет назад

    Really, really good explanation. Loving this series.

  • @zebcode
    @zebcode 6 лет назад +2

    I'm learning things I thought I already knew! Thank you!

    • @ChristopherOkhravi
      @ChristopherOkhravi  6 лет назад

      I'm glad to hear :) Thanks for sharing the comment, and thanks for watching :)

  • @andreassmedjebacka5785
    @andreassmedjebacka5785 7 лет назад +1

    Thanks! I'll make sure to check out that Patreon page. The repetitive explanations of the same thing suits me well as I watch your vids standing in a crowded subway and can't easily annotate.

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 лет назад +3

      Thank you very very much for the considering :) No pressure.

  • @mohitvalechay
    @mohitvalechay 5 лет назад

    Thank you for your videos Christopher. You're a great teacher...keep them coming on new topics as well....kudos!

  • @wearemiddream
    @wearemiddream 2 года назад

    i've been trying to understand this for a minute and you just nailed it dude, thank you!

  • @behnamrasooli8801
    @behnamrasooli8801 6 лет назад

    I've been looking for such a great explanation for a loooooong time. Thanks for sharing :)

  • @mannyfay2524
    @mannyfay2524 2 месяца назад

    You explain this topic super well and I like your speed of speaking very much!! If you want to keep evolving your way to make such awesome tutorials, please avoid your huge amount of jumping because of cutting your videos.

  • @tomaszwnuk7998
    @tomaszwnuk7998 6 лет назад +1

    I'm glad I found your channel. Great explanation.

  • @kuntalshah07
    @kuntalshah07 6 лет назад

    Dude, This is the best design pattern lecture series I saw till now

  • @phuctranbao7518
    @phuctranbao7518 Год назад

    Please know that you save my and so many others' lives. People, we need to protect this man at all costs!!!!

  • @shankar7435
    @shankar7435 4 месяца назад

    I completely agree with the fact that the book's example is causing more confusion than understanding. Your explanation at 5:35 is legendary and that's all I wanted to understand this pattern. Thanks a ton for that.

  • @dark808bb8
    @dark808bb8 3 года назад

    I think it is really interesting how you show that various types of creators and products can reduce to a few creators and products with different properties.

  • @mirzaaqeel
    @mirzaaqeel 3 года назад

    You are a teacher.... Hats off to your way of explaining and fitting in examples... perfectly....Thanks a lot.

  • @TheMA5B
    @TheMA5B 3 года назад

    I love the editing! Great explanations, thank you!

  • @sshanzel
    @sshanzel 4 года назад

    A very clear and concise explanation.
    I'm so happy after watching your vid that intuitively i implemented factory pattern without realizing it. I mean the idea behind.
    But basically it helped me reduce duplicated code (copy pasting then tweak a bit about the other about) just because things were behaving the same way, i though of something that will create them but based in a configuration that is set for the subject.

  • @giuseppepersico8536
    @giuseppepersico8536 5 лет назад

    Hi Chris! Thanks for your design patterns videos! It would be awesome to have a comparison video about factory and builder pattern!

  • @thecurlykale
    @thecurlykale 5 лет назад

    just want to say i really enjoy your videos! :) thanks for putting them together.

  • @mohanhegde
    @mohanhegde 4 года назад +1

    Beautifully explained 👍👍👌👌😀👏👏. Love this head first design patterns playlist series dude! Thank you soooo much 🙏🙏

  • @Tanya_5091
    @Tanya_5091 6 лет назад

    Why haven`t I found this channel earlier? So useful, the best explanation ever

  • @user-np4hj8gr2i
    @user-np4hj8gr2i 3 месяца назад

    I love that you move so much while speaking, it helps me get less distracted
    THank you for your explanatoin, it was really useful and easy to understand!

  • @harshadakhandekar4607
    @harshadakhandekar4607 4 года назад

    Thank you so much Sir. Incredibly easy explanations to such tough design patterns. Respect !!!

  • @sahilgupta5546
    @sahilgupta5546 2 года назад

    I really like your way of explaining. Hope to stick through all your videos, sir!

  • @talyakatz8387
    @talyakatz8387 3 года назад +1

    Im a CS student and you explain it 10000x better than my lecture. Thank you!!!!

  • @jagmagana
    @jagmagana 6 лет назад

    Thanks for this design patterns series, i downloaded all videos because i cant lost this treasure...

  • @alexanderaphonin7850
    @alexanderaphonin7850 Год назад

    Another great explanatory video! Thanks for the great work Christopher!

  • @pavel2747
    @pavel2747 5 лет назад

    The examples of factory method and abstract factory patterns provided by this book are the most convenient and understandable ones I've ever seen. And I: 1) have seen dozens of them; 2) am not from NY, Chicago etc. I'm not even from USA.

  • @rsdntevl
    @rsdntevl 6 лет назад +1

    The game example gives good insight on the dynamic nature of the factory method!

    • @ChristopherOkhravi
      @ChristopherOkhravi  6 лет назад

      +rsdntevl Cool! I'm glad to hear. Thanks for the specific feedback :) and thanks for watching :)

  • @shanm4629
    @shanm4629 3 года назад +1

    I realized this is the best explanation after watching bunch of other videos on the same topic for couple of days. Thanks for making such a quality video on Factory Method Pattern.
    At roots I propose to use this when
    1. The client program is only interested in what kind of object is required, rather than what exact object is required. Best Example: I need level4 obstacle and not really bother to tell anything more than that.
    2. When The client program is more concerned about how they co-relate when they get created more than one. Ex: random Animals are expected rather balanced animals from a Factory.
    Awesome explanation. Thanks.

  • @saadbinkhalid4208
    @saadbinkhalid4208 4 месяца назад

    Bro your explanations are great. I am glad I came across this playlist. You're doing great work

  • @zoharshtambergelmalah4158
    @zoharshtambergelmalah4158 10 месяцев назад +1

    the asteroid example is really good!

  • @mercury801115
    @mercury801115 2 года назад

    I finally understood the difference between simple factory and factor method. Thank you!