Observer Pattern - Design Patterns (ep 2)

Поділитися
Вставка
  • Опубліковано 31 січ 2017
  • Video series on Design Patterns for Object Oriented Languages. This time we look at Observer 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

КОМЕНТАРІ • 1,5 тис.

  • @lec446
    @lec446 4 роки тому +861

    Because of the good content, I subscribed and clicked the bell to become an observer of your channel. Now whenever you post a new video, i'll be notified! Thank you for this series!

    • @bbcszone1
      @bbcszone1 4 роки тому +13

      hahahaha best com!

    • @h4hashir
      @h4hashir 3 роки тому +8

      Sir I too am now an Observer. Usually I go to Udemy for my design pattern refreshers but this time I thought hey why not give the UA-cam algorithm a chance since it's so good with providing me with physics and nature learning videos. But as a programmer I never used youtube as my go to for learning. Usually it's just stackoverflow or Udemy. But seeing this channel just blew me away. It's like Christopher is speaking to my ADHD soul and saying ..."hey, I got you bro". Well thank you sir!
      OK NOW, can we make this a thing -where if you're simply amazed by the effort Christopher is taking to explain this to us as if we're his own... to at least semi reciprocate -Isn't the least we can do is become an observer to his channel?!!
      - IF YOU CLICKED ON THE BELL TO BECOME AN OBSERVER THEN LIKE AND REPLY TO THIS COMMENT!
      thank you. Peace, my fellow homo sapiens. Stay true.

    • @devincedric4068
      @devincedric4068 2 роки тому

      Instablaster.

    • @doumkatekz
      @doumkatekz 2 роки тому +2

      @@h4hashir My ADHD soul got distracted by the comments sections, but I am loving his channel and am also an observer

    • @anshulrao2373
      @anshulrao2373 2 роки тому

      good one xD

  • @JoramVanhaerens
    @JoramVanhaerens 3 роки тому +30

    Kind of reminds me of a dad driving with the kids in the back repeatedly asking "Are we there yet?". Dad would be more happy if they stay quiet and he just updates the kids upon arrival or pit stops along the route.

  • @ruddha2
    @ruddha2 5 років тому +292

    This is like Vsauce for programmers. Great explanations!

  • @EdwardFacundo
    @EdwardFacundo 4 роки тому +117

    2020 and still one of those best explanations about design patterns.
    Great work!

  • @MohamedMagdy-wj3ec
    @MohamedMagdy-wj3ec 7 років тому +572

    you are a very good Instructor , good job :)

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому +15

      mohamed magdy thank you for the kind words!

    • @4848kim
      @4848kim 6 років тому +1

      mohamed magdy z

    • @iam1213
      @iam1213 6 років тому +2

      agreed!

    • @adriencastella4992
      @adriencastella4992 4 роки тому +2

      Yes, I think so too! Much better than my uni Professor. I actually enjoy listening to these videos

  • @vivek5562
    @vivek5562 7 років тому +337

    I'm just putting a comment here to encourage you to make more videos :) Keep up the good work.

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому +1

      +VIVEK VERMA appreciated. Thanks for taking the time and thanks for watching :)

  • @shivz732
    @shivz732 4 роки тому +46

    man if my school had teachers like this, I would never ever skip a class. So fun and interesting to watch

  • @Oxygen.O2
    @Oxygen.O2 3 роки тому +19

    Never did I understood a concept so easily, the rythm, the cuts, the words, the real life example, everything was perfect! THANK YOU!

  • @leondaz7380
    @leondaz7380 4 роки тому +36

    This seems like the most underrated youtube channel ever

  • @callmeartae
    @callmeartae 6 років тому +31

    It certainly shows that you have a lot of passion for the subject. That's what makes a good teacher - being energetic and excited about certain topics makes your students energized and excited as well. Great job!

  • @NomadicFreediver
    @NomadicFreediver 3 роки тому +18

    Probably the most frustrating thing about learning something online (either from UA-cam or through MOOC) is the fact a given content is explained once and in one way only. If you can't ask, if as a student you cannot ask questions for clarification about a given detail, most of the time you get stuck and you need to find the information elsewhere. Your video is a great example of how repetition and rephrasing can solve this problem. Thanks a lot.

    • @sk8erbyern
      @sk8erbyern 10 місяців тому +1

      yep, I also really liked the carefully chosen words. Words have meaning (duh!) and tech industry (from schools to books to companies) is extremely lenient when it comes to those meanings. Subject can mean the data inside the observeable, therefore it is not a good choice for observeable.

  • @NikhilSharad
    @NikhilSharad 4 роки тому +19

    By far the most effective lessons on design pattern, I am going through your entire series. Thank you!

  • @shoaibahmad6910
    @shoaibahmad6910 6 років тому +11

    TINGGGG! You've got an Observer
    You've kinda injected it into my mind. Amazing stuff.

  • @zmonkey111
    @zmonkey111 8 місяців тому +4

    I am self teaching myself to try and break into the tech industry. Having you almost feels like I have a professor to lecture the material to supplement my reading and practice. Thank you for doing this. On to the Decorator chapter!

  • @SuhailKhan-vr6ik
    @SuhailKhan-vr6ik 5 років тому

    Awesome! Your playlist is gold. Thanks for making it freely available to all on UA-cam.

  • @venkateshrajendran2362
    @venkateshrajendran2362 2 роки тому

    Thanks, @Christopher Okhravi. The more I watch your series the more I fall in love with the Design patterns.

  • @StelaTasheva
    @StelaTasheva 4 роки тому +28

    Real life Poll example: Toddler asking every ms "Mommy, can I have a chocolate" ...

  • @codycoker7176
    @codycoker7176 7 років тому +9

    These videos are incredible. Thank you so much for making them. I really do feel like I understand these design patterns in a way that I didn't before.

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому +2

      James Coker fantastic! I'm so glad. Thanks for letting me know :)

  • @jacobsylvestkrab-johansen6679
    @jacobsylvestkrab-johansen6679 2 роки тому

    This might have been the best description of both definitions and also pseudo i've ever seen. period.
    You handle the topic so easily, and makes it very easy to understand as you go through!
    Thank you so much for the enlightenment!

  • @satishgopaldas4040
    @satishgopaldas4040 8 місяців тому +1

    2023 and still one of those best explanations about design patterns.Thank you Christopher ❤

  • @ruantristancarlinsky3851
    @ruantristancarlinsky3851 Рік тому +10

    Absolutely fantastic video! People like you are what gets us through Computer Science. You have my utmost gratitude!

  • @kolobamanacas
    @kolobamanacas 4 роки тому +4

    Christopher, you are the master of explanation! Your editing style with cutting all redundant pauses, etc. is superb! The way you explain things is also very nice. Please continue your project, it's very useful!

  • @shubhamchandra9258
    @shubhamchandra9258 2 роки тому

    Respect for the fact that you really want to make sure that we get the concept. A true contributor for the community.

  • @redamohsen3767
    @redamohsen3767 Рік тому

    2022 and still one of those best explanations about design patterns.
    Great work! hopefully you still active and post more videos about anything

  • @trailblazer_nomad
    @trailblazer_nomad 5 років тому +3

    Awesome job, Chris! Saves time to read 50 pages :) I've watched your other pattern videos and they are also great! Thank you, Chris :)

  • @raulcubila5877
    @raulcubila5877 6 років тому +11

    Dude your explanations are super clear and understandable. This design course is better than a lot of pay courses Online. Thanks a lot!!!!!

  • @sshanzel
    @sshanzel 4 роки тому

    The most wonderful instructor i've seen in my entire lifetime

  • @mattgraves3709
    @mattgraves3709 4 роки тому

    I bought this book years ago and just never really had the time or interest to get into it and now I'm really glad that I did and I'm so glad that I found your videos because they make this book so much more enjoyable thank you so much

  • @anasfcb
    @anasfcb 7 років тому +11

    Hey Christopher,
    First, thanks a lot for the valuable information but also for your natural and nice way to breaking down abstract notions to make them more concrete.
    Being an intermerdiate Architect/developper, I find your "code walks" very "friendly" too, answering many of daily dilemmas, and helping to think in a larger and better way.
    The design patterns videos are quiete long, but EVERY minute is worth watching!
    Please keep inlightening us (y)

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому +4

      anasfcb thank you very much for the utterly kind words. I'm very glad that the content is useful. I consider myself intermediate as well but tend to talk a lot about what I think about :) :)

  • @taianilange1500
    @taianilange1500 6 років тому +7

    You make learning so much fun! Thank you! Absolutely love these videos.

    • @ChristopherOkhravi
      @ChristopherOkhravi  6 років тому

      Thank you! That makes me very glad to hear. I appreciate you taking the time to share it :D Thanks for watching :)

    • @sohypemadainy7948
      @sohypemadainy7948 5 років тому

      @@ChristopherOkhravi you are so good instructor, thank you for these free tutorials

  • @solo-angel
    @solo-angel 4 роки тому

    Omg, this is the best observer pattern lesson in the world!
    You've spelled everything out for us so clearly. Thank you!

  • @incrediblyStupid678
    @incrediblyStupid678 4 роки тому

    After working in another job for roughly 10 years, I am trying to get back into software development and currently studying up for interviews. This is immensely helpful and you are a great instructor! Thanks for this!

  • @taylorsmith6961
    @taylorsmith6961 2 роки тому +8

    Dude these are SO GOOD. Thank you for this content. Currently studying for upcoming FAANG interviews and I like to cap off my study sessions with a video or two of yours because they are just so good and entertaining that I can still pay attention and soak in that much more. Cheers!

    • @user-fe1xe4zs6q
      @user-fe1xe4zs6q 9 місяців тому

      Hi,
      How was the interview experience ? Did you get in ? Me on the same path. 😑

  • @worldown
    @worldown 7 років тому +37

    Cool, I like it. Your energetical didn't give me to sleep otherwise wen I read this book and watch other videos it was boring , Thank you bro =)

  • @jasonshiffler4615
    @jasonshiffler4615 4 роки тому +1

    Going through the HFDP book right now, this is a great companion to it. thanks!

  • @hugforfree
    @hugforfree 5 років тому +2

    Thank you, thank you, thank you! I wish my university teacher could teach like you!!! Don't stop doing it that way.

  • @herediadev
    @herediadev 7 років тому +12

    Hello Christopher, very interesting and very clear how you explained the observer pattern. I just subscribed to your channel because I am interesting in this design pattern series.
    By the way, Robert Martin (Uncle Bob) talks about the Single Responsibility Principle violation in the observer pattern, but if i remember correctly, it is part of the trade off you have in order to use the pattern, on the other Hand, remember that the SOLID principles are more like guidelines than some kind of laws, some of them bend, some of them can be broken.

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому

      Rafael Heredia Bastidas Thanks for the comment! I'm glad it's useful. And thanks for bringing the words of Bob Martin into the conversation! Makes sense.

  • @rsdntevl
    @rsdntevl 6 років тому +8

    Really great explanations

    • @ChristopherOkhravi
      @ChristopherOkhravi  6 років тому

      Thanks. I'm glad to hear it works :) Thank you for watching :)

  • @MrLucbroche
    @MrLucbroche 4 роки тому +1

    You're making everything clear to me, thank you!

  • @Elantry
    @Elantry 5 років тому

    Yes please! This is great for all of us who needs to hear things 3 times to get it!

  • @sachinkainth9508
    @sachinkainth9508 2 роки тому +9

    Here's a couple of improvements I would make to this. In order to satisfy the Single Responsibility Principle, I would create a WeatherStationObservable class that implements IObservable and use composition to have an instance of WeatherStationObservable inside the WeatherStation class. This way, WeatherStation will only have the responsibility of dealing with temperatures, pressures and other weather related things. The second thing I would do is make WeatherStation implement an interface IWeatherStation, this way I can inject an IWeatherStation into PhoneDisplay so that it doesn't rely on the concretion WeatherStation.

    • @heroChaddi
      @heroChaddi 8 місяців тому +1

      why do you need extra WeatherStationObservable class, why cant WeatherStation class implement IObservable and IWeatherStation and this will be injected to PhoneDisplay so that it only worries abt getTemp instead of having access to registry.

    • @AidenElliott-ff2vt
      @AidenElliott-ff2vt 5 місяців тому

      Single Responsibility Principle: A class should only serve one purpose in your code. By breaking it up, your code becomes more modular, reusable, and less likely to break during later refactoring.

  • @LavGupta08
    @LavGupta08 7 років тому +3

    Thank you soo much. These are very helpful. Eagerly waiting for the next one :)

  • @ThePrashant13feb
    @ThePrashant13feb 4 роки тому

    One of the best videos on Design Pattern on internet, Great work !

  • @riteshpuj9566
    @riteshpuj9566 5 років тому

    @Christopher ... great explanation, it clearly shows how much effort you have put into this. Thanks a lot for giving back to the community. I hope everyone gets inspired by you and keep sharing knowledge.

  • @Sapphiamur
    @Sapphiamur 3 роки тому +60

    you're the best, seriously :dd.

  • @JacklapottTv
    @JacklapottTv 7 років тому +4

    if only it was possible to click like more than once, great vidéo (y)

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому +1

      You having commented on multiple videos is perhaps even better :) But I'm humbled, and I thank you :) If you know someone who might be interested in the video, do feel free to share it with them.

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому

      Also the (y) has to count for something right? Qualitative thumbs instead of quantitative :)

  • @abdulmughniabuzainah2561
    @abdulmughniabuzainah2561 3 роки тому +1

    your explanation is really beyond description...i'd love to get notified more often of your video...

  • @DuyPham-fh6yb
    @DuyPham-fh6yb 4 роки тому +1

    Your tutorials have helped me a lots in my study. I hope you keep on doing helpful videos like this. Thank you so much

  • @AbdAllahBoda
    @AbdAllahBoda 7 років тому +177

    mmmm, I still don't like the idea of passing the observable to the observers as parameter into the constructor of the observers. feels like you are giving the observers more than they need to know the data!
    I think it would be better to send the updated data via update(newData) method..
    - consider the following use case:-
    * At the same concrete class "weather station", they are more than one senser.. for wind speed, another for humidity, and of course the one for temprture..
    * Now Imagin that there're some observers which are interested only in the humidity, and others in wind speed only..
    we can do an observer pattern for each piece of data by itself, with the update method signature changed based on the wanted data..
    * so we can have update (Humidity newHumidityData), update (WindSpeed newWindSpeed), etc .. each one into its own observer interface of course..
    * what I'm saying is, you observe pieces of data, not the whole object :) .. that way I prefer passing the new data via update :) ..
    I really like your vids, don't stop, keep moving forward :)
    ----------------------------------------------
    Edit: I wrote my comment before finishing the vid :D , my bad there.. I liked that you touched on the subject at the end :)

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому +34

      I agree 100% with your comment. Great example. Thanks for sharing it! :D

    • @FeroChau
      @FeroChau 7 років тому +55

      I also have the same concern. Instead of creating interfaces for different signatures of update method, we should create a generic interface that has void Update(T value) and IObservable with void Add(IObservable observer).

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому +19

      +1 Excellent idea! Can't see why I didn't think of that :) :) Thanks for sharing!!

    • @andylinkOFFICIAL
      @andylinkOFFICIAL 7 років тому +9

      .NET has their own battle tested APIs for this that takes generics. Pretty sweet!
      msdn.microsoft.com/en-us/library/dd990377(v=vs.110).aspx

    • @BraBo
      @BraBo 6 років тому +4

      Makes more sense to send the instance and/or data in the update() method itself, as said at the end...

  • @ofirfridman3525
    @ofirfridman3525 7 років тому +4

    really good tutorial :)

  • @benvandesompele6761
    @benvandesompele6761 5 років тому

    these video's are more usable than my entire semester of design. we use the same book as you do, but you explain it like 20 times better :)

  • @kwaku_2023
    @kwaku_2023 2 місяці тому

    This is by far one of the best design patterns playlist i have seen.

  • @scorepro5059
    @scorepro5059 6 років тому +56

    All devs should know these patterns. Great work! Better than watching someone type ;) Just a quick note, this could of been a lot shorter. Laboured the point some times. Appreciate your enthusiasm and effort though 👍🏻

    • @ChristopherOkhravi
      @ChristopherOkhravi  6 років тому +11

      +Adrian Collins Thank you for the detailed feedback. Much appreciated. It's super easy to accidentally get repetitive but point well taken and I'll try harder! Thanks for watching and for sharing :)

    • @reneschindhelm4482
      @reneschindhelm4482 6 років тому +4

      Well, as a dev I know the patterns but having to deal with legacy code bases, getting into what's going on in there (because developer's didn't document, the 2nd/3rd generation of developers is on the project, ...) and with very little time on my hands there's simply no way I could apply all of them. No one pays me for heavy refactorings. If you have the time to design a new program, design it well and DOCUMENT it :)

    • @kardaschow6482
      @kardaschow6482 3 роки тому +4

      I find it hard to focus on things like this, so i appreciate the repetition

    • @arvind31459
      @arvind31459 2 роки тому +3

      @@ChristopherOkhravi I like the repetition. It basically reinforces our understanding without having to seek the video multiple times and losing the momentum.

  • @silviupanait8861
    @silviupanait8861 5 років тому +15

    every programming tutorial should be done like this :)

  • @gauravganna
    @gauravganna 2 роки тому

    I cannot stress how great Teacher you are.

  • @NightKnight252
    @NightKnight252 3 роки тому

    This is THE best design pattern tutorial I've ever seen

  • @RZato
    @RZato 6 років тому +4

    Great job man! I would like to suggest that one inconvenient of passing the Observable reference in the Observer constructor is when an object is Observer from more than one Observable. In the example, imagine that the display needs to show not only data from the WeatherStation, but also from a RealtimeClock. One solution can be to include the reference in the Update() function.

  • @2perspektiva
    @2perspektiva 6 років тому +12

    42:15 left down corner :)

  • @dralps
    @dralps Рік тому +2

    Great explanations, concise yet to the point!

  • @aramkrtchyan7486
    @aramkrtchyan7486 4 роки тому

    dude you are awesome, this is like literally a complete walkthrough the whole design flow, i'm already on 37:28 and i completely understand what's the observable flow and what's the difference of when we have a reference to observable in observer and when we don't have, thanks man

  • @avahome5285
    @avahome5285 2 роки тому +3

    NOTES: An observable has many observers. Push model/Broadcasting/chatting system can be implemented using observer pattern. Chatroom is an observable, user is observer.

  • @konzinovmaverick4539
    @konzinovmaverick4539 7 років тому +3

    Thanks again for this new video! it was well explained. Bur I got a question. Could we have passed an interface as argument of ConcreteObserver constuctor? so we would be able to pass any kind of ConcreteObservable, maybe a WeatherStation or Something else which can produce Data?

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому +6

      Good question. Absolutely. The key question is of course what the signature of the GetData() method in the Observable is. As long as the Observables you want to be able to observe with your ConcreteObserver has the same signature for the GetData() method (regardless of whether it happens to be named GetData or not) I completely agree with your idea.
      In other words, let's say that we have two ConcreteObservables: ModernWeatherStation and ClassicWeatherStation. Let's say that both inherit from IObservable. If I'm not misunderstanding you, you're suggesting that we let both of these implement the same interface, let's call it IWeatherStation. Because then we can let the ConcreteObservable accept an instance of an IWeatherStation in the constructor instead of a concrete weather station like ModernWeatherStation.
      This increases abstraction and I'm 100% with you. It's in my mind a good idea.
      Thanks for watching!

    • @misha130
      @misha130 7 років тому +2

      konzinov maverick just to note maybe it would be better to have generics instead of an iweatherstation or a generic that implements iweatherstation but this all depends on language and situation

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому

      +Misha +1. Agreed.

    • @ThePsyrencall
      @ThePsyrencall 6 років тому

      I'm not sure I follow but do you mean to allow the IWeatherStation to be passed as an argument to the constructor of the ConcreteObserver (and not ConcreteObservable)?

    • @wealthcreator5740
      @wealthcreator5740 6 років тому

      for this case ,shouldn't we have to add getStatus() method inside interface ?

  • @dorsharoni10
    @dorsharoni10 3 роки тому

    What fun to watch your videos.
    You are funny, human, and free.
    And most importantly know how to explain in the clearest way.

  • @mohamedalfaghi4703
    @mohamedalfaghi4703 3 роки тому

    Your explanation is so clear and straight to the point, great job 👏

  • @andreiflorea5070
    @andreiflorea5070 6 років тому +6

    I'm supposed to learn for a microeconomics exam that's in two days from now but this stuff is way too captivating lol

    • @ChristopherOkhravi
      @ChristopherOkhravi  6 років тому +3

      +Andrei Florea hahaha :D Well, at least you're procrastinating with something that might have a high payback still :) Best of luck on the exam and thanks for watching!

  • @user-pu8ds4ey5t
    @user-pu8ds4ey5t 5 років тому +10

    I guess you forgot " station.add(this); " in the constructor of the displayer.

  • @franco7545
    @franco7545 6 місяців тому

    The clearest explanation about this topic I've ever heard, thank you!

  • @maxandriani
    @maxandriani 5 років тому

    Your videos has a very simple and genius explanations. Congratulations! This is the best overview I ever read about design patterns.

  • @gurebu75
    @gurebu75 7 років тому +4

    Christopher Okhravi
    Your explanations are good, but this particular video is difficult to watch because of the dropped frames. Can you please change your video editing style so that there are no jumps from one video frame to another. I guess you are trying to make your video to look cool, but in fact you just made it hard to watch.

    • @ChristopherOkhravi
      @ChristopherOkhravi  7 років тому +8

      I'm sorry the format isn't working for you. The "harsh" cutting is used because I want to be respectful of your time as a viewer. If I was able to get it right every time on every take then I wouldn't need the cutting :) I'm not that good yet but will hopefully become in the future :) Thanks for watching.

    • @RaviBodla123
      @RaviBodla123 5 років тому +1

      Christopher Okhravi and this really helps.. consise and fast.. removing the extra time writing and erasing the board... Saves a lot of time and patience too 🙂

  • @sanaMaheen05
    @sanaMaheen05 3 роки тому

    Your style of explaining a topic is so intuitive that things automatically unfold and make sense at the right time. Truly appreciate the efforts you put into making such informative videos.
    Thank you from India ❤️

  • @jurgis246
    @jurgis246 5 років тому

    This is truly amazing. Very good job while explaining design patterns. I found myself here watching this video in a middle of the Friday night because it is so interesting, easy going and even entertaining!!!

  • @vipulmishra8682
    @vipulmishra8682 Рік тому

    Kudos to you! All of your videos break down difficult topics into easily understandable explanations! Keep doing the good work

  • @willymax0
    @willymax0 4 роки тому

    Love your videos. I tried to learn pattern so many time before and just now (with your videos) I'm finally understanding them. Thank you so much

  • @oleksandranestoryshena2215
    @oleksandranestoryshena2215 2 роки тому

    Thank you a lot! I'm preparing for the Middle position and I've got stuck in this patterns topic for a few days already😅. And now I need only one evening to watch your lectures and understand all this stuff ❤️

  • @jasoncole3253
    @jasoncole3253 3 роки тому

    I am so glad I found you, you are the teacher I always wanted since primary school

  • @samuellam7951
    @samuellam7951 Місяць тому

    Thank you for the detailed explanation. I like how you go into every single detail and almost always answer the questions that sprang to my mind on the spot. Everything clicks after watching the video. You deserve more subscribers.

  • @ninakoch1799
    @ninakoch1799 2 роки тому

    This is so great!! Thank you tons! You deserve the world, this is the best video series on design patterns in the whole world!! Finally i understand these concepts!

  • @AmanpreetSingh
    @AmanpreetSingh 4 роки тому

    The best explanation of the observer pattern I've ever seen. Thanks 👍

  • @renskekuip3028
    @renskekuip3028 5 років тому

    Thank you so much, I could never quite figure out how it works exactly but now I understand it and was able to implement it. You're a very good instructor, I like how you use visual examples. Keep going!

  • @davidseesahaye2038
    @davidseesahaye2038 4 роки тому

    You are probably the best instructor on youtube. Thanks for the vid.

  • @alamaralaa
    @alamaralaa Місяць тому

    Headfirst design patterns is a great book! I've recommended it to dozens of people I've worked with and people I've interviewed who had never heard of design patterns.
    Years ago, I read one of the original books on design patterns and understood the ideas, but I didn't get the why of it all. Years later, I picked up Headfirst, and suddenly, it all made sense. My favorite design pattern is the state machine. I've found so many places in my designs where it simplified what would otherwise end up being hundreds of lines of nested case and if/then/else statements into small, trivially testable, pieces of code. Much of it containing no control statements at all.
    I could not recommend this book more!!!

    • @ChristopherOkhravi
      @ChristopherOkhravi  Місяць тому

      Thanks for sharing this. I think you are very right in that it is a tremendously useful book for introducing the topic of patterns in an approachable manner. Thanks for watching 😊

  • @subramaniamseshadri9347
    @subramaniamseshadri9347 3 роки тому

    Thank you for this. I'm down two videos. Strategy and Observer. Awesome content.

  • @user-sh9bj8qz3j
    @user-sh9bj8qz3j 3 місяці тому

    I never ever thought that design patterns are this much easy to understand. All concepts are explained so well in this series. Thank you so much. Best regards.

  • @Abdullah-ly4sm
    @Abdullah-ly4sm 4 роки тому

    What an amazing teacher you are!

  • @ankurtripathi5877
    @ankurtripathi5877 5 років тому

    Crystal clear explaination! Thanks a ton for this wonderful video explaining the design pattern in great depth.

  • @user-ki8mz4kj8q
    @user-ki8mz4kj8q 4 роки тому

    This is the best explanation of design patterns! Thank you, man!

  • @snarf45
    @snarf45 Рік тому

    This is the best video I could find on this design pattern. Thank you!

  • @nifengjujuzhang8429
    @nifengjujuzhang8429 5 років тому +1

    THIS IS THE BEST EXPLANATION I HAVE SEEN SO FAR! My lecture in uni just made a ten minutes power point slide to explain this and i understand no shit except using a magical interface called observer can reduce coupling. The explanation you made makes total sense, you have done such a great job on keep repeating and emphasising your points and used some great examples for looking in the insights. Thank you so much :D I have learned a lot and it's fun watching it! Keep on the good work!

  • @user-fu4le1se6u
    @user-fu4le1se6u 3 роки тому

    I'm highly enjoying your video series! Will check out what other stuff you got because you explain everything so smoothly!

  • @mohamed-zhioua
    @mohamed-zhioua 11 місяців тому

    school need teachers like you , great job

  • @sumit-kushwah
    @sumit-kushwah 3 роки тому

    Your way of teaching is awesome!!

  • @alwinvandijken6778
    @alwinvandijken6778 3 роки тому

    Great video serie. I bought a book about Design Patterns but with your explanation is makes much more sense. Keep up the good work.

  • @nimeshnelanga8780
    @nimeshnelanga8780 3 роки тому

    Fact that most of the people came down to put a comment shows that they sincerely appreciate your content. It definitely deserves more views. This channel worth subbing 💜

  • @manveersingh5822
    @manveersingh5822 2 роки тому

    You were very clear and not at all confusing. Thanks!

  • @335LINZ
    @335LINZ 3 роки тому

    This series is helping so much. I read the chapter then I watch your presentation. I will repeat that for each chapter/video. Then in the Fall, I am enrolled in an actual course at the local Tech college. Repeat again but then with actual assignments, tests grades all that.

  • @tntdogs6910
    @tntdogs6910 3 роки тому

    Very helpful, rare to find these good teachers.
    Good because, on subject, concise.
    And I have to describe it as you kind of re-iterate over every step, you explain the most important thing at the start.
    Then we are reminded everytime when you reuse that step, becuase you explain it briefly or how it is used this time.
    Great job bro, honestly

  • @lazymacs2823
    @lazymacs2823 2 роки тому

    The best tutorial ever, you easily explained the hard stuffs

  • @henlyforbesly2176
    @henlyforbesly2176 2 роки тому

    What a great, clear and concise explanation!

  • @bradizawsome
    @bradizawsome Рік тому

    Best design pattern explanitaion ive found on UA-cam and better than any ive found on Udemy. Definetly appreciate this series!

  • @silassilas5575
    @silassilas5575 2 роки тому

    Best tutorial I’ve ever seen. Insane! Thank you