Great article, thanks for writing it! I always find that objects get overloaded with attributes and methods that should either be on the parent class or outside the object entirely. Love what you have to say about if/else and type checking - both anti-patterns in my opinion, too.

That said, untangling and refactoring bad OOP in an existing code base can be a nightmare. When objects become intertwined and codependent, you can spend a long time trying to simplify and move functionality to the correct objects.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store