Using DI to Avoid Inheritance

I often find myself using inheritance to try and DRY up my codebase. However, that can easily lead to inheritance hell, which you know you are in when: You have to implement methods you don't want/need in child classes. You enter the "great" territory with great-grandparent and great-great-grandparent classes.…

Read this article