7 years later, this series is still the best for learning design patterns.
@worldown7 жыл бұрын
I study and improve not only patterns but also English. Thank you for clearful and not boring lessons =)
@ChristopherOkhravi7 жыл бұрын
Thank you for the kind words and for watching :)
@joselosddrd7 жыл бұрын
I also improve patterns and English... you said why.. Well because We're learning English -__- xD
@mikekajzer7 жыл бұрын
this is no joke, this guy articulates words with speed of a Gatling gun and yet he's perfectly understandable. not even a single word gets ambiguous or hard to catch!
@akashchourasiya722 жыл бұрын
LOL😂
@РовшенБердимырадов Жыл бұрын
Хорош
@mesesamboby Жыл бұрын
It's 2023 and I am watching the series (of course with pen and notebook ready). Thank you very much Chris! The value you add is huge.
@Alarith19887 жыл бұрын
Finally understood the difference between Factory Method Pattern and Abstract Factory Pattern. Thank you very much. Great series!
@ChristopherOkhravi7 жыл бұрын
I'm glad to hear. Thanks for sharing :) and thanks for watching :)
@MrAceman823 жыл бұрын
It helped me also :)
@neonskyscape4 жыл бұрын
I have to admit (yeah I watch it now in 2020) that I really haven't seen any tutorial videos on YT that are as immersive and fun to watch as this one. I am a computer science student that likes to explore CS-related content and I accidentally stumbled upon your channel. I may say that these 25+ min videos are better structured than all the lectures I have attended at my University. Well done! I am a subscriber now! Thanks for creating and sharing this interesting content!
@slipperydippery4 жыл бұрын
The UI example was so much clearer than the Head First pizza examples! This makes sense in a way that I can use it for my own projects, thanks!
@ayushdayani71575 ай бұрын
The example of Dark and Light mode was beautiful. It gave the most clarity about the use case of abstract factory. Kudos!
@ChristopherOkhravi5 ай бұрын
Happy to hear. Thanks for watching 😊🙏
@vicinityconcepts11655 жыл бұрын
This is a great video, you covered the pattern very well. I wanted to add one additional point which you will see in many implementations of this pattern: When you have multiple concrete implementations of a factory, you have the same problem you had when faced with multiple concrete implementations of a product. You want to get the type of product you need, but don't want to get your hands dirty with the business logic involved in creating it. With multiple concrete factories, how can you apply a polymorphic solution for creating the correct type of factory? The answer is a factory of factories. The same way we abstractify the logic for creating products, we can abstractify the logic for creating factories that produce families of products. Let's use your operating system example: You want platform-specific UI's, and have created UI factories for Mac OS, Linux, and Windows. Maybe you also have subclasses of those factories for things like light mode, dark mode, accessibility mode, etc. When the program begins, you detect the operating system and graphical settings, and send those details to your factory of UI factories. You are given back the correct concrete UI factory implementation specific to your needs, and can start producing UI elements. Without this extra polymorphic layer, you may be faced with the same problem that the factory pattern was devised to solve.
@AbdAllahBoda4 жыл бұрын
I love it when people write down what I'm saying in my head, makes me feel connected to the world somehow. :) Thanks for sharing your knowledge. :)
@solkara7 жыл бұрын
Please include code examples as they really help cement the idea, like you did in decorator pattern.
@koruspring15196 жыл бұрын
Second this. I know this is about abstraction but man.. the example is too 'abstract'.
@kapilpadaliya23875 жыл бұрын
Watch Derek Banas Vidoes on Design pattern after every explaination.
@saganawski5 жыл бұрын
@@kapilpadaliya2387 thanks. Derek's demonstration really helped me
@sohamdatey224 жыл бұрын
check out this video For amazing content with code Example nicely presented kzbin.info/www/bejne/g6uWqmCpZs-eoac
@HippieInHeart2 жыл бұрын
concrete factories, cement, did i accidentally walk into a construction supply shop or something? lol. but yeah, i agree, code examples would be pretty helpful.
@nametakenfan Жыл бұрын
Freaking HERO - I have been banging my head against the wall for about 2 hours trying to understand Abstract Factory Patterns and you managed to clarify everything in about 25 min. The recap of the definition at the end really brought everything together. Thanks for helping me not fail my CS course
@dmytrouchkin14156 жыл бұрын
You got a talent to explaining difficult abstractions. Keep it up, man - result is incredible.
@Jacob-bz5hn2 жыл бұрын
Literally been trying to wrap my head around the abstract factory pattern for the longest time and your video finally helped me understand what it is and why is is useful!!!!!💯I love your teaching style!!!!! Thank you so much!
@briannkurunungi28372 жыл бұрын
Men, Chris, your energy is infectious, lots of love. Thanks a bunch
@shubhambhardwaj89905 жыл бұрын
The explanation that why we go from factory method to abstract factory is what really helped wrap my head around the concept, Thanks a ton!! :)
@faridiflex7 жыл бұрын
The best video that explains Abstract Factory pattern. Very well edited to keep the pace of video fast enough.
@ryanconnollyatwork13567 жыл бұрын
You have such a great way to teach and keep the user engaged. With the ever important point of the "Why" not just the "How", this video is one of the best in this subject IMO. Thank you very much for sharing!
@Obsi9956 жыл бұрын
I swear it all made sense with that last themes example. Amazing.
@ChristopherOkhravi6 жыл бұрын
I’m glad to hear! That’s awesome. How lucky 😊😊 Thanks for watching 😊
@AfriandiHaryanto3 жыл бұрын
Posted years ago, yet this one still the best explanation I found so far.. Thanks (a lot) Chris..!!
@vislobokovaleksander4 жыл бұрын
I tried to understand this via wikipedia's diagrams and descriptions, but it was too overwhelming for me couple of weeks ago. And now they are REALLY simple. Great thanks to you, man. You are really sticking to KISS principle :)). thank you again
@Hdjandbkwk4 жыл бұрын
Thanks for the awesome videos! I think the main difference between Factory Method and Abstract Factory is that Factory Method relies on inheritance and let subclass decides how to create object through the factory method(s), whereas Abstract Factory uses composition, client gets an object that implements abstract factory interface and uses that object to create items. Abstract Factory is at a higher level since it is an object, while factory method is only a method.
@mantur82076 жыл бұрын
Christopher your last example in the video on Mobile App theme is EXCELLENT. It clarifies the real time use of abstract factory pattern and also why we can not use factory method pattern in this example.
@rh72017 жыл бұрын
your example of dark theme and light theme of an application is the most make sense of application development. Thank you.
@amraboughazala59865 жыл бұрын
for the arrows it can work if you selected arrows starting from concrete factories from the bottom only heading to product B and another starting points from top heading to productA. Good job you deserve all the good comments.
@tivmego7 жыл бұрын
Man, this video series might be ever green when you are done with it! youtube has connected us in an observer pattern in that since I subscribed, I get updates on your current videos :D
@ChristopherOkhravi7 жыл бұрын
+tivmego haha thanks! Makes me glad to hear :) Thanks for watching :)
@espritgaronne99756 жыл бұрын
lol
@xavmanisdabestest4 жыл бұрын
I need to subscribe too! I was constantly polling his channel for new videos like a scrub
@cdarius06 жыл бұрын
25:00 really hits the nail on it's head. Thank you for the nice work!
@mayankkukadia7 жыл бұрын
Thanks a lot Christopher for the perfect explanation on Abstract Factory and Factory Method pattern. I have seen dozen of tutorials on Abstract Factory pattern but most of them are confusing or miss leading. After watching this video, now I perfectly understood Abstract Factory pattern. Thank You again.
@harkitnebamake4 жыл бұрын
Beautifully explained with good example of UI controls.
@sazuru57084 жыл бұрын
invert bottom right stack and draw green lines to the bottom to avoid line crossing, thanks for the videos!
@nguyenhoangminhtrung27794 жыл бұрын
some heroes don't wear capes. They are giving free knowledge for free with a perfect explanation.
@ChristopherOkhravi4 жыл бұрын
Haha 😊 Thank you very much for these words. It makes it all worth it 😊😊
@idanlazimi7 жыл бұрын
By far the one of the best teachers on KZbin. Thanks
@rafatrench7 жыл бұрын
The method you use for teaching is very dynamic, but at the same time through, thanks to that I was easily able to understand the whole concept. Keep it up!
@mylaidbacklife3 жыл бұрын
I'm in 5 mins and I think I found the right channel for concepts! Because supposedly anyone can code these days!
@rein292339 ай бұрын
Finally in forver i understood this concept. You are the only i have seen provide a really easy example that is applicable in real life.
@youcefsb47084 жыл бұрын
It must be a hell of a feeling to read all these comments and see how helpful you are to others, keep it up please, you are good at this, thank you!
@sadradorostkar37974 жыл бұрын
Your teaching is better than all the teachers that i saw in 12 years of studying at Iran awful schools :) love you bro....
@gh83263 жыл бұрын
Estaba viendo videos de este patrón, vi tu video y dije: pues veamos si logro entender después de varios videos y solo te puedo decir que eres un genio explicando. Te estoy enormemente agradecido...
@malino24-souls2 жыл бұрын
Very good explanation. We had a deep discussion in lessons yesterday because there was the perception that abstract factories return factories but this was massively helpful.
@mitulmunjal33792 жыл бұрын
Your explanation is very crystal clear and possesses exact amount of depth which is needed to learn design patterns. I am really enjoying these videos. If you can please try to reduce the joining of different video clips, it will tremendously help in focussing more on the topic as frequent clips somewhat cause a distraction. But yes, this content is GOLD!
@oztv_10 ай бұрын
we love the jump cuts
@OutsidePawn2 жыл бұрын
I think the concept of Factories finally makes sense to me now. I can see how the process of creation of an object has been abstracted away. However, contrary to what I've read somewhere that it is meant to avoid the 'new' keyword, your explanation makes much more sense. I can see now how one might want to avoid 'new' keyword unnecessarily in order to have dynamic object creation code. Still, it is necessary to understand that you cannot completely avoid the 'new' keyword as the concrete factories themselves must be created at some point in the code. I think the key power of factories is their ability to provide a means of creating and using 'wishful' objects of classes that don't even yet exist in the code. Thanks a lot man.
@ShyamSharma-pg1zu3 жыл бұрын
Your teaching style is so nice and easy. Thanks a lot
@riteshsharma9295 жыл бұрын
As a novice to design I often have hard time thinking where this thing could be applicable. The example in end of themes in UI was of a great help. Thank you. 😊
@dp-bhatt7 жыл бұрын
I think you explained the most difficult design pattern in the simplest way. Thanks again :)
@sumitnegi74092 ай бұрын
loved the way this guy explains. Nice
@rajeev78423 жыл бұрын
This is some premium explanation making complex topics simple to understand, and I love the way you repeat things so that the idea gets cemented into our head, hats off to you sir, great explanation I hope you never stop doing these, We novice developers need people like you.. :)
@utsavshrestha71628 ай бұрын
Thank you. Much easier to understand as a visual learner.
@sorskilla7 жыл бұрын
You're really onto something with your design patterns series here. Keep on keeping on. I especially appreciate the fact that you compare the implementation to real world applications. For a follow up series I'd suggest revisiting the patterns after a while and focusing on the comments, most common questions, misconceptions, etc.
@whatshappening57123 жыл бұрын
You deserve all 3 buttons from KZbin
@eraykalkan7 жыл бұрын
Some examples on the book are rather ambiguous for someone who is new to the concept. Thanks for coming up with more understandable real world examples and analogies.
@sushmitagoswami20335 жыл бұрын
you are the best teacher i have ever seen
@_overide6 жыл бұрын
Possibly the best explanation I've ever seen. Thank you Chris!
@kumarprateek12795 жыл бұрын
This playlist is really good for getting a start in design patterns.
@sriplano7482 жыл бұрын
Yet another awesome video!! When I listen to your explanation it makes me really think as opposed to just be a passive listener. Thank you very much Sir!!
@ervingegprifti2612 Жыл бұрын
Just put ProductA & ConcreteProductA on the down left side so to avoid line crossing. I haven't read all the comments, so perhaps that was mentioned before :). Wonderful explanation.
@enmanuelbolzonello47543 жыл бұрын
Thanks for all these videos talking about design patterns. Very good and clear explanation.
@radionroman2 жыл бұрын
Honestly this is the most complicated yet
@kamildabek_3 жыл бұрын
I love the UI example i.e. dark theme factory vs light theme factory. Really grounds the concept!
@tranpaul45503 жыл бұрын
Summary: Factory Pattern - can only create 1 concrete product. Abstract FP - can create multiple concrete products (related to each other - or family of products). That is it. Both are FP because they let its subclasses decides the concrete implementation. It took me 3 weeks of reading the book, watching videos to the point everything just click (embarrassing, I know ). So believe that you will eventually understand it.
@cunami27 жыл бұрын
Moment when u after reading tones of text, and watching 10+ videos, after single video made by Chris everything makes perfect sence...
@ChristopherOkhravi7 жыл бұрын
+cunami2 haha :) Thanks I'm very glad you feel that way :)
@davidsegalle77453 жыл бұрын
I am learning this for the first time and I was so incredibly proud of thinking, damn that would be useful for dark mode in apps or even os. Guess what, took you 30 seconds to say that, I know it's nothing special but it just felt like I was incredibly smart for a second
@obamabinladen50553 жыл бұрын
This is top notch stuff. Your viewpoint and how you think about it makes the patterns clearer.
@quirkymarshmallow93244 жыл бұрын
I wouldn't really call it simple design pattern. But I can certainly see how valuable it is. Thanks for the video!
@kinvain4 жыл бұрын
The explanation is utterly great! And the final example is way better then any "abstract" pizza factory.
@miketh44344 жыл бұрын
You are a very talented teacher. Thanks a lot really
@kinty2556 жыл бұрын
I understand this pattern so much better now. Thank you for the great explanation!
@abhishekmiet3 жыл бұрын
Loved the explanation, was struggling with Abstract factory for more than a day...
@arshadyusuf48036 жыл бұрын
Wow Christopher.. You are the man!! I tried in couple of other places, but didn't quite grasp AFP. But you made this so simple..! You don't know how thankful I am to you!!
@kapilkumar-mf7pn5 жыл бұрын
u are really genious..... jo aapko ye subject samajh mai aaya
@AgrawalRajat3 жыл бұрын
Finally watched Christopher video at 1.5x speed. Because I had already watched his previous factory design pattern video :) :P
@thunderkiss0077 жыл бұрын
Thank you Christopher for great explanation.My advise just for videos that all design patterns have some limits.For example when we use abstract factory for different platforms such as for windows and mac and if mac dont have one component which exists in windows it can be problem using abstract factory.so it would be great if you aldo explain some important point that someone should be careful when to use
@ChristopherOkhravi7 жыл бұрын
Great point and great advice! :) The Interface Segregation Principle (which states that: "no client should be forced to depend on methods it does not use") is another way of expressing the very important point that you raise. It applies beyond AFP but perhaps as you allude to especially in AFP since it's easy to get caught up in the moment and just through every conceivable method into the factory :) Thank you for sharing and thank you for watching :)
@jaluopink5 жыл бұрын
I think all design patterns have limitations in general, that is why you will see some element of implementations of minor aspects of other design patterns in conjunction with another design pattern. For instance, its quite common to see Factory pattern being used in conjuntion with Prototype pattern or storing some set of prototypes...There is no really a silver bullet to all programming problems.
@Aruna7216 жыл бұрын
Best design pattern tutorial series ever!
@musings2134Ай бұрын
You did God's work by making these videos! May you get rewarded for it.
@tomahawkay84553 жыл бұрын
Design Patterns : Never been easier with Christopher Okhravi Thank you sir for your high quality content and especially for your eagerness to make sure that the topics are understandable and enjoyable :)
@leviermonaites68323 жыл бұрын
I never knew someone with such a great speaking talent man, really really great!
@geedhu0007 жыл бұрын
Thanks for wonderful video. It helped to understand the difference of Factory Vs Abstract Factory clearly.
@chaitanyatanwar81514 жыл бұрын
Thank you for making the understanding so easy.
@saudnaeem6 жыл бұрын
I watched your videos and passed my design patterns Exam with good grade. Thank you so much for such great effort. Stay blessed
@ChristopherOkhravi5 жыл бұрын
That’s awesome! Congrats! 🎉🎊
@142536895 жыл бұрын
Couple of years ago I had made an android application using a "simple factory", but I thought that I used a "Factory Method". And now I have finally understood that actually I should use an "Abstract Factory". Few types of workout that contain different sets of exercises.
@ambarishkapil80044 жыл бұрын
Hey Chris, nice explanation. Absolutely love your big hand gestures and passionate rants.
@urosmilic33004 жыл бұрын
GREAT WORK MATE. You helped me a lot with these patterns, i didn't really understood them until i watched your series..
@burakakyalcin3 жыл бұрын
you, sir, are an amazing teacher. much thanks.
@riteshtyagi54396 жыл бұрын
Amazing tutorials sir, the best I have ever seen for design patterns, this is exactly what I was looking for. Thank you so much
@simaphore2 жыл бұрын
Your explanation is brilliant!
@wellingtongamagomes74115 жыл бұрын
This video provided us an excellent explanation about abstract factory pattern and the main points of difference between the abstract factory and the factory method, congrats brother. Thank you very much!
@saiabhirambandhakavi11884 жыл бұрын
really good explanation on a theoretical level
@shristibaranwal21833 жыл бұрын
Great experience... This is how we should be explained!!! Thank you
@Vahi6 жыл бұрын
I am really impressed by your way of teaching Really helped me understand the abstract factory and factory methods pattern Glad I found your lessons on youtube Keep up the good work
@n0block5 жыл бұрын
Something clicked in my mind while watching this video. Thank you.
@manishbolbanda98729 ай бұрын
hey, first of all thank you for the wonderful explanation,especially the example of light and dark theme icons.. i have read the chapter from book and i must say they really complicated the example in that
@LavGupta087 жыл бұрын
Thanks again for the awesome video. I wish I had a teacher like you in university.
@shashankapaduvalli7 жыл бұрын
Thanks for the simple explanation. The book made it unnecessarily complicated.
@ChristopherOkhravi7 жыл бұрын
+shashanka paduvalli thanks! I'm glad it makes sense :)
@shubhamsoni86223 жыл бұрын
I think, why the book implies that you should return different types of objects is because if you are returning same type of object in different methods in a factory, then maybe you can have those different implementations returning that same type of object in one method itself. Obviously it breaks separation of concern, but their logic seems to be this in my opinion. btw, thanks for awesome summary of patterns in that book.
@sachinjaybhay74393 жыл бұрын
Fantastic series of lectures... Really appreciate the efforts taken to bring out the essence of each pattern... The key I think is the problem, solution definitions and the relatable examples... Kudos
@IdanMoral7 жыл бұрын
I've a good example that you can use to explain this pattern: If you make a nature simulator that creates animals and environments for them you can use abstract facory pattern to create a factory the makes combinations of different animals and environments. one concrete factory can create combination of arctic animals and arctic environment, and other can create a combination of desert animals and desert environment. if you try to combine arctic animals and desert environment it doenst make sense. I hope it helps :) (Btw, continue making your awsome videos!)
@vivekraj14273 жыл бұрын
Best series on design pattern👍👌
@Hodebrot4 жыл бұрын
Dude, you‘re an absolute educational monster. In Uni the reasoning for using composition instead of inheritance was a joke. I mean litterally. The prof cited a joke and that was it. By whatching your videos I am starting to see an actual reason to use composition instead of inheritance. Thanks a lot!
@TAGHREEDAA6 жыл бұрын
thanks very much I watched many videos and read the part of Head first multiple times but I get lost ... the video made the idea clear and easy to understand
@mehdieskandari56207 ай бұрын
Your lessons are great! Thank you so much.
@lankymorley7 жыл бұрын
I love this series, thanks for your super clear explanations. I'm a fan of the jump cuts, they keep my mind from wandering.
@abcdeereijgfhd32153 жыл бұрын
Well this really sounds like oop concept. Just another way to say. Thx for ur great explanations
@albinsjostrand70506 жыл бұрын
Loving these walkthroughs! Perfect for the courses I'm taking that always have very unclear explanations, but where you make it very clear!