I think yours are the only videos on UA-cam for learning Design patterns thoroughly without even reading anything, really thankful for that and please never stop making videos.
Hi Christopher, Thanks for making such a wonderful videos on design patterns. I just come across your videos while searching for design patterns in youtube. I have gone through all of your videos on design patterns. I say these are simply excellent. Keep up the pace. Expecting all GOF design patterns through your videos.
+santosh ganji Solid. I'm glad to hear. About all the GOF patterns, I've been thinking about whether I should indeed cover all of them. I was intending to only do the ones in Head First but since the videos have been quite well received I might make a video for the remaining patterns in the GOF book. Thanks for commenting! And thanks for watching :)
You probably dont give a shit but does anyone know a trick to get back into an instagram account?? I was stupid forgot the account password. I would love any tricks you can give me!
@Jon Roland I really appreciate your reply. I found the site thru google and Im waiting for the hacking stuff now. Takes a while so I will reply here later when my account password hopefully is recovered.
Thank you, Christopher, these are honestly the best design pattern videos I have seen and help me to really understand them. I look forward to the next video :)
My god.. that transformer vs the plug difference to explain the difference b/w adapter and decorator is amazing! This would remain with me forever now. Thanks Chris!
i really like how you always repeat things, i find it really difficult to focus on lectures and spoken word in general but with your videos i never lose track
Oh, man, finally a dyed in the wool bona fide natural born teacher!!! If there were teachers like these around when I was a kid I would have paid attention first time around. But ... they spread the info out over a complete year that it took mr Okhravi less than half an hour to explain. Well, I ain't dead yet so I can learn this now instead! :D
Great video again. Whenever I try to explain this to anyone, I typically try to give an example where I'm trying to save some entity to a database. Then I explain the database may change but should not really affect the modelling of our program.
I had an exposition in university about this design pattern yesterday. You taught me how to explain this in a way that people can understand it, and I'm really thankful for that. Happy holidays Christopher :)
Thank you Christopher, for recording the whole discussion, instead of making lectures. The videos and in super headfirst manner and I am able to focus and grasp the concepts and rationale behind these patterns. And most importantly I learnt from you on how to read a technical book and present our own interpretation. 👍
The way you simplify and explain it is extremely commendable. I am preparing for an interview after a break in my career . On searching for relevant videos, yours is the best I would say, Thanks a lot. You bring in so much clarity by explaining it with simplest possible examples . Great teaching.. Thanks a lot. Could not resist appreciating your effort. I am pausing the video in the middle and typing this. Great job sir.
Christopher: I've just found you....and I have to say that it is the best explanation that I saw about design patterns. I'll see other videos. Thanks from Argentina! Martin!
Hi Christopher, I am a big fan of your UA-cam Contents, especially OOps n Design Patterns. Concepts were always vague for me initially Till I come across your videos. However, your videos helped me a lot to convey the right message I had to deliver to my students. Thanks.
I truly wish that more lecturers can teach from the perspective of students, just like you do! I pay a ton in tuition but sometimes just don't get much digestible knowledge in return. There are professors that don't even bother to tailor the publicly available slides to their actual need, let along writing notes on board. They just read thru or fly thru some slide and give random thoughts. While this might work for advanced class, it's absolutely a nightmare for any introductory course. Sir you deserve a larger platform, and I wish you all the best!
Before you, learning the design patterns was absolutely tough for me, but after watching your great and subjective videos, everything has changed; TADA. Again the best adapter explanation I have ever seen.Thank you man.
The key lies in 17:19, otherwise (without DI) the whole thing would be useless because if we hardwire Adaptee into the client, we might as well call SpecificRequest(). OTOH we could make Adaptee implement from IAdaptee with IAdaptee.SpecificRequest().
I barely comment to youtube videos but i was compelled to write to this one. That was such a nice example and explanation. Your energy definitely made it a lot easier to watch as well. Thanks
Chris you saved my life today. I'm working with a legacy application that's expanding to another country and now we need to integrate with different third-party apps. Thank you and when you visit Barcelona remember me that I own you a beer. Take care
Hi Christopher Another great video explaining the pattern! Thank you so much for sharing! I wanted to point out more about using the Adapter pattern for an external library. It's definitely a good idea to encapsulate all your external DAO calls in the adapter pattern, like calling a database or an external service. Another reason is Exception handling. For whatever reason you have defined your own exception type hierarchy (transient or permanent exceptions) in your code base. And you want to translate the exceptions thrown by your external dependency. Adapter pattern is good for that because you can wrap the call to adaptee.speceficRequest() in a try{} catch{} and re-throw exceptions of your own type. One useful point of rethrowing exceptions of your own type is to have different retry policies for different kind of exceptions. Thanks again for sharing the video!
Hello Chris, again awesome video, I did not know that adapter pattern was also known as a wrapper, but thank you for mentioning that at the beginning of the video, it makes totally sense to be called like that
A good example, in scientific computing where parallel computing is required, an adapter could be used to wrap/hide MP or/and MPI. That also simplify the interface of such external libraries.
I asked in the Decorator video I think, where were you from and you answered this one...besides I have learnt a lot from you about Desing Patterns nowdays, let me tell you that your English is incredible good and clear.. thanks a lot for everything man, saludos desde México =)...
Thank you Christopher for making these videos. These are the best videos that I ever came across on design patterns. I have watched all the videos and eagerly waiting for next one...
Thatnks a lot Christopher for making these videos, you are explaining very well, easy to understand, I am not referring any books. your videos are enough.. .:)
I finally kinda understand this pattern I think... The adapter is actually trying to connect ITarget and Adaptee. I was confused why you needed to create a separate interface for the adapter, but in fact that’s the interface that the client already has. And because of polymorphism, when the client calls ITarget.request(), he’s unaware of if he’s calling the real implementation or the adapter implementation. Your Swedish power plug is actually the ITarget, your adapter is the adapter class implementing ITarget and the UK power plug is the adaptee
@12:17 - @14:00 Crux of the adapter pattern, I think. Often, I'll need to convince other coworkers why a pattern is necessary. This excerpt provides a pretty compelling case -- you want to isolate change to a software component that might change. Thanks!
Great video, i'm watching all of them and always looking forward for the next one. I manipulated in the past, when working on android projects, a thing they called a List Adapter that would interface together a collection of POD/primitive data objects and a collection of graphical/UI objects. At the time i wasn't really digging into those design patterns thing but now thanks to you I have a better understanding of what this adapter did.
Thank you for the great tutorials. You put so much effort on this and I should say that you made it crystal clear. Please continue this series and keep sharing with us your knowledge.
Hello Christopher!! Just a suggestion! I think that whenever you want to talk about "Interface" in the sense of contracts between two parties (and not in the sense of Java Interfaces, etc.), you could use the term API ! This would be a nice analogy, and lots of programming books/tutorials refers to these contracts (even when interacting a simple function with his caller and/or his "returner") as APIs. Hope to be helpful!! And congratulations for your awesome work!!!!
Hi Christopher. This has been the best explanation I've seen. Immediately liked the video and subscribed to your channel! You earned yourself a new fan 😁
One interesting example was when we integrated a new payment, and the payment provider was a third party which required a different view of the order information that we stored in our side, so we had to create an adapter which adapted our order into an order object which was constructed in a way more relevant to the Payment provider. BTW the end was quite interesting bit about Favouring composition over inheritance.
Simplest example of this pattern could be "Translator" Suppose your are English man want to invite Chinese man for lunch who doesn't understands english or your sign langauges as well. What you will do? you will simply call for a person who knows English and Mandarin and, that Translator person is not Uplifiting or Editing your intentions. Whatever you asked him he just simply delivered it. That way, you successfully invited that man on lunch. Let me know if I'm incorrect here. Thank you for such great explanations.
again an awesome vid, christopher! you asked for input: i am very happy about the theoretical concept you draw and "implemented" and i would have been very happy about a second sample which is about the plugs/sockets you started with. client is the class "plug" (of your macbook) adaptee is class "wallsocket" "plugadapter" is the piece of hardware you showed us and i guess the interface might be "iplugadapter" to deliver the contract. what i generally might have missed is where the client is used. sort of "plugged in" or such. to be more technical: where and how does the client (plug) make use of the adapter (plugadapter)? i only see the adapter (plugadapter) use the adaptee (wallsocket)
i learn more from ur 30 - 40 mins than my 2 hour lectures
This series is like godly for interview preps.
I think yours are the only videos on UA-cam for learning Design patterns thoroughly without even reading anything, really thankful for that and please never stop making videos.
Hi Christopher, Thanks for making such a wonderful videos on design patterns. I just come across your videos while searching for design patterns in youtube. I have gone through all of your videos on design patterns. I say these are simply excellent. Keep up the pace. Expecting all GOF design patterns through your videos.
+santosh ganji Solid. I'm glad to hear. About all the GOF patterns, I've been thinking about whether I should indeed cover all of them. I was intending to only do the ones in Head First but since the videos have been quite well received I might make a video for the remaining patterns in the GOF book. Thanks for commenting! And thanks for watching :)
@@ChristopherOkhravi 2020 and I share the same sentiment
You probably dont give a shit but does anyone know a trick to get back into an instagram account??
I was stupid forgot the account password. I would love any tricks you can give me!
@Theodore Braxton instablaster :)
@Jon Roland I really appreciate your reply. I found the site thru google and Im waiting for the hacking stuff now.
Takes a while so I will reply here later when my account password hopefully is recovered.
Thank you, Christopher, these are honestly the best design pattern videos I have seen and help me to really understand them. I look forward to the next video :)
+Ali Morrison Thanks! I'm glad to hear the content is valuable. Next coming soon :)
Dina videos är dom absolut bästa jag har sett på länge. Sättet du förklarar på är extremt pedagogiskt! Tack för att du har gjort dom här videorna!
My god.. that transformer vs the plug difference to explain the difference b/w adapter and decorator is amazing! This would remain with me forever now. Thanks Chris!
You’re passion is infectious. Hope you keep this going .
This is better than the "Best Selling" Udemy course on Design Patterns. I know cuz I bought it and now regretting.
i really like how you always repeat things, i find it really difficult to focus on lectures and spoken word in general but with your videos i never lose track
My friend, you are one of the most thorough teacher of these topics that I have come across.
Thank you for this video!
Oh, man, finally a dyed in the wool bona fide natural born teacher!!! If there were teachers like these around when I was a kid I would have paid attention first time around. But ... they spread the info out over a complete year that it took mr Okhravi less than half an hour to explain. Well, I ain't dead yet so I can learn this now instead! :D
Great video again. Whenever I try to explain this to anyone, I typically try to give an example where I'm trying to save some entity to a database. Then I explain the database may change but should not really affect the modelling of our program.
you got me when you said transformer - Decorator Pattern, adapter - Adapter pattern. very great explanation.
Amazing videos mate - loved the transition at 4:14 :P
:D
I had an exposition in university about this design pattern yesterday. You taught me how to explain this in a way that people can understand it, and I'm really thankful for that. Happy holidays Christopher :)
I’m humbled and really glad to hear that. Congrats on the success! And happy holidays to you too :)
Love the practical examples that you use to demonstrate the design pattern! Thanks for the effort you're putting into this...
Amazing teaching skills, I really appreciate all your hard work and energy that you put into all of your videos.
Wow. I now understand the Adapter pattern. Very thorough explanation. Glad I found this video!
Christopher, you always say you don’t know this you don’t know that, yet you explain it very understandably. :) Thank you!
Thank you Christopher, for recording the whole discussion, instead of making lectures. The videos and in super headfirst manner and I am able to focus and grasp the concepts and rationale behind these patterns. And most importantly I learnt from you on how to read a technical book and present our own interpretation. 👍
The way you simplify and explain it is extremely commendable. I am preparing for an interview after a break in my career . On searching for relevant videos, yours is the best I would say, Thanks a lot. You bring in so much clarity by explaining it with simplest possible examples . Great teaching.. Thanks a lot. Could not resist appreciating your effort. I am pausing the video in the middle and typing this. Great job sir.
Christopher: I've just found you....and I have to say that it is the best explanation that I saw about design patterns. I'll see other videos. Thanks from Argentina! Martin!
I like how you teach man, it is very clear and simple to understand, and I appreciate all of the efforts you are putting.
Just want to say, i love the way teaching us 😉.
I love that way of studing. It's fun, and you get me knowledge in easier way. Thanks a lot man!
This is super incredible to learn design principles. I’m really happy I found this video
Probably the best example of the Adapter Pattern I've seen
Hi Christopher, I am a big fan of your UA-cam Contents, especially OOps n Design Patterns. Concepts were always vague for me initially Till I come across your videos. However, your videos helped me a lot to convey the right message I had to deliver to my students. Thanks.
I truly wish that more lecturers can teach from the perspective of students, just like you do! I pay a ton in tuition but sometimes just don't get much digestible knowledge in return. There are professors that don't even bother to tailor the publicly available slides to their actual need, let along writing notes on board. They just read thru or fly thru some slide and give random thoughts. While this might work for advanced class, it's absolutely a nightmare for any introductory course. Sir you deserve a larger platform, and I wish you all the best!
My brain exploded as I finally understood the differences. You are the best!
Before you, learning the design patterns was absolutely tough for me, but after watching your great and subjective videos, everything has changed; TADA. Again the best adapter explanation I have ever seen.Thank you man.
Your videos are one of the few things I cant wait. Thank you!
+Olaf Olafski Haha thank you I'm glad to hear :)
Best video to understand the Adapter Pattern... Thank you so much for your superb explanation.
The key lies in 17:19, otherwise (without DI) the whole thing would be useless because if we hardwire Adaptee into the client, we might as well call SpecificRequest().
OTOH we could make Adaptee implement from IAdaptee with IAdaptee.SpecificRequest().
best design pattern explanation on youtube, thank you sir
This should be the first chapter of the book, it explains composition, delegation, asociation in a very simple way.
Very good point!
I barely comment to youtube videos but i was compelled to write to this one. That was such a nice example and explanation. Your energy definitely made it a lot easier to watch as well. Thanks
Thank you so much, this videos make the patterns much clearer to understand for me :)
Very clear and concise explanation with engaging teaching style!
Chris you saved my life today. I'm working with a legacy application that's expanding to another country and now we need to integrate with different third-party apps.
Thank you and when you visit Barcelona remember me that I own you a beer.
Take care
+Rafaell Lycan Hah! That's awesome I'm super glad to hear! High five for solving the issues you faced! :) And thanks for the beer :) :) :)
You are very good at explaining how design patterns work! Love it!
Hi Christopher
Another great video explaining the pattern! Thank you so much for sharing!
I wanted to point out more about using the Adapter pattern for an external library.
It's definitely a good idea to encapsulate all your external DAO calls in the adapter pattern, like calling a database or an external service.
Another reason is Exception handling.
For whatever reason you have defined your own exception type hierarchy (transient or permanent exceptions) in your code base. And you want to translate the exceptions thrown by your external dependency.
Adapter pattern is good for that because you can wrap the call to adaptee.speceficRequest() in a try{} catch{} and re-throw exceptions of your own type.
One useful point of rethrowing exceptions of your own type is to have different retry policies for different kind of exceptions.
Thanks again for sharing the video!
Hello Chris, again awesome video, I did not know that adapter pattern was also known as a wrapper, but thank you for mentioning that at the beginning of the video, it makes totally sense to be called like that
You are amazing Christopher. So much dedication and passion. You actually created desire to learn and dive into these concepts. Thanks a lot.
Best deign pattern videos out there ! Thanks Christopher
A good example, in scientific computing where parallel computing is required, an adapter could be used to wrap/hide MP or/and MPI. That also simplify the interface of such external libraries.
Man u you are wonderful. Wish every single teacher is like you. Thank for you for these golden content
Wow! Clear, creative, understandable english. Subscribed.
great work!!! you inspire me for my upcoming bachelor thesis - thank you, so helpful!
Well for not a good "reader" like me, your videos has been so clear and understanding. thanks a ton bro. keep it going.
Thank you so much for this playlist, I highly appreciate your hard work in creating lectures
I asked in the Decorator video I think, where were you from and you answered this one...besides I have learnt a lot from you about Desing Patterns nowdays, let me tell you that your English is incredible good and clear.. thanks a lot for everything man, saludos desde México =)...
Thanks a lot for ur effort on these videos. I have watched all patterns videos. Every programmer should watch them.
Thank you Christopher for making these videos. These are the best videos that I ever came across on design patterns. I have watched all the videos and eagerly waiting for next one...
I have both design books and have been lacking the time to thoroughly go through them, so thank u!!!
+Christian M Solid. Makes me glad to hear that the videos work as a complement. Thanks for sharing and for watching :)
Loved the way you teach or make videos. Also love ur cat too !
Hi Christopher,
I was going through head first book, and got confused with examples. But you explained those examples very well.
Thanks !!
Thatnks a lot Christopher for making these videos, you are explaining very well, easy to understand, I am not referring any books. your videos are enough.. .:)
This was really well done. I love your style of teaching and enthusiasm.
Спасибо за объяснение. Не зная язык - понял всё, благодаря жестикуляции.)
Yet another great video
The series is incredibly clear, Thanks a lot
Waiting for the next one
Thanks! And thanks for following the series. Next is on its way :)
I finally kinda understand this pattern I think... The adapter is actually trying to connect ITarget and Adaptee. I was confused why you needed to create a separate interface for the adapter, but in fact that’s the interface that the client already has. And because of polymorphism, when the client calls ITarget.request(), he’s unaware of if he’s calling the real implementation or the adapter implementation. Your Swedish power plug is actually the ITarget, your adapter is the adapter class implementing ITarget and the UK power plug is the adaptee
This is even better than pluralsight and i do have its subscription.
Thanks Christopher, the pedagogy is super good and it helps a lot after going through the books.
Another great explanation of a design pattern. Enjoy your youtube videos - these and code-walks.
Thanks! And thank you for the code walks shoutout :)
Amazing!!! May god bless you for these tutorials!!!
The best explanation of design patterns I have come across on the internet. Great work man, you got a new subscriber! :)
@12:17 - @14:00 Crux of the adapter pattern, I think. Often, I'll need to convince other coworkers why a pattern is necessary. This excerpt provides a pretty compelling case -- you want to isolate change to a software component that might change. Thanks!
The best video on adapter pattern
best design pattern tutorial on youtube. thanks!
very simple and easy explanation and help well to understand design pattern!
I normally don't comment. But I wanted to say thank you for the explanation! Really a good way to understand!
Great video, i'm watching all of them and always looking forward for the next one. I manipulated in the past, when working on android projects, a thing they called a List Adapter that would interface together a collection of POD/primitive data objects and a collection of graphical/UI objects. At the time i wasn't really digging into those design patterns thing but now thanks to you I have a better understanding of what this adapter did.
Man…you did such a great job!
I just want to see more videos from you!
I liked the pause at the end.
Excellent editing, making your videos very fluid and easy to digest! Great videos!
Thank you for the great tutorials. You put so much effort on this and I should say that you made it crystal clear. Please continue this series and keep sharing with us your knowledge.
Thank God a video with no weird accents.
Hello Christopher!! Just a suggestion! I think that whenever you want to talk about "Interface" in the sense of contracts between two parties (and not in the sense of Java Interfaces, etc.), you could use the term API ! This would be a nice analogy, and lots of programming books/tutorials refers to these contracts (even when interacting a simple function with his caller and/or his "returner") as APIs. Hope to be helpful!! And congratulations for your awesome work!!!!
Thanks for that smile at the end of the video! Super cute :3
Oh man, you explained the adapter pattern in a great way! I subscribe to the channel and am going to watch your other videos :)
Thank you for the video Christopher.
Passing between scenes is awesome 7:50 :D
Thank you Christopher for making usch wonderful and energetic videos.
Thanks for that video. Very clear explanation.
Thanks Christopher. It is really helpful.
Thanks for letting me know. And thanks for watching :)
You rock on all your classes, man
very good explanation thank you Christopher.
Hi Christopher. This has been the best explanation I've seen. Immediately liked the video and subscribed to your channel! You earned yourself a new fan 😁
One interesting example was when we integrated a new payment, and the payment provider was a third party which required a different view of the order information that we stored in our side, so we had to create an adapter which adapted our order into an order object which was constructed in a way more relevant to the Payment provider. BTW the end was quite interesting bit about Favouring composition over inheritance.
Christopher Okhravi you are my new religion.
Love the explanation. Quick and easy to understand!
waw you are from Sweden...fantastic explanation. Tack för de här underbara videon
Excellent tutorial! I have these books, but they’re rather dry. You make them interesting. 🤘
me too
Great Video. Very understandable. Many thanks for such videos.
Simplest example of this pattern could be "Translator"
Suppose your are English man want to invite Chinese man for lunch who doesn't understands english or your sign langauges as well. What you will do? you will simply call for a person who knows English and Mandarin and, that Translator person is not Uplifiting or Editing your intentions. Whatever you asked him he just simply delivered it. That way, you successfully invited that man on lunch.
Let me know if I'm incorrect here.
Thank you for such great explanations.
again an awesome vid, christopher!
you asked for input:
i am very happy about the theoretical concept you draw and "implemented" and i would have been very happy about a second sample which is about the plugs/sockets you started with.
client is the class "plug" (of your macbook)
adaptee is class "wallsocket"
"plugadapter" is the piece of hardware you showed us
and i guess the interface might be "iplugadapter" to deliver the contract.
what i generally might have missed is where the client is used. sort of "plugged in" or such.
to be more technical: where and how does the client (plug) make use of the adapter (plugadapter)?
i only see the adapter (plugadapter) use the adaptee (wallsocket)
Very nice video! I'm kinda new with all this stuff and this video helped a lot!
This video needs more views, very helpful!