@stphdr2771

First time as a student that I completly understand SOLID principles ! Thanks for the share.

@elyakimlev

Interesting and informative. I've used enums many times in my code, but now I see using an interface with classes implementing it would have been a better choice in many situations.
I would just change one thing in the Liskov Substitution Principle example:
Seeing specific Video member variables like title, likes and views under a class named VideoManager seems wrong to me. Instead, I would have left these member variables under the Video class and move the playRandomAd() method to VideoManager.
PremiumVideo would still inherit from Video. That way, you also remove the need to duplicate the getNumbersOfHoursPlayed() in every subclass.

@yusufnzm

Your videos are some of the best OOP videos I found on Youtube. I binge watched most of the videos, and they are one of the clearest OOP tutorials I have seen.

@jimmytorres4181

This video is amazing. Your channel is underrated, you're great at teaching

@luisalamo2658

Perfectly explained in 11 minutes! Thanks!

@ppdmartell

Best video I have ever seen on SOLID design principles!

@tassivisognon2247

best and straightforward video I have watched on this topic. Thanks you

@jasper5016

Your videos clear all my doubts. Thanks

@jamescasipong2309

7:20 wouldn't just be better if we could just create a base class that doesn't have playRandomAd methods and have both video and videoPremium class inherited it and implements playRandomAd inside video instead. Does that make sense? So we have the option to either override methods from base or not and also helps us reducing number of lines code.

@Korgoon

The solution in Liskov substitution principle with VideoManager breaks the Single Responsibility Principle, now one class is responsible for two totally different behaviors.

@KizilBoss

thank you, I am always struggling with that in high level applications. The part with Dependency Inversion Principle helped me alot, well can you do a example with best practices lets say with have 5 moduls?

@AndreB777

This was actually well explained

@imranyaseen3528

This is an amazing video. Very easy to understand with examples. Please keep it up!

@jsimek

I am reading Clean Code and one thing I noticed is that Robert C. Martin recommends to avoid words like manager, processor, data or info in the names of a class, i.e. VideoManager at 7:14

@vextronx

These videos are extremely helpful, they deserve much more views. You are amazing!

One question, doesn't the VideoManager class (at 7:16) violate the Single Responsibility Principle? I'm really not sure, it just seems a little strange. Does "managing a video" count as a single responsibility? Isn't that a bit too broad?

@t0khyo

The most underrated channel ever!

@yobrangutez1470

You are God sent. Great content. Kindly recommend other channels that teach the way you do.

@nadirsiddiqui9559

7:17  how can I use the methods of manger class without creating an instance of that class, those methods are also not declared as static too..

@darkstudio3170

Underrated channel . Like and shared. Thanks a lot for the efforts🙏

@Manuel-fp6ni

In Liskov's substitution is same to say:    replace the child by its father     or       replace the father by its child?   I see both ideas explaining this principle on the web