Have you read the GoF? It was the first source that started to make me doubt the value of class inheritance. I frequently quote the GoF when I’m speaking on those topics.
The essence of the GoF is built on two foundational principles discussed in the beginning of the book:
“Program to an interface, not an implementation.”
“Favor object composition over class inheritance.”
The latter follows from the first because child classes depend on the parent class implementation. Class inheritance is the tightest coupling available in OO design.
I don’t dismiss the GoF. It was a big influence on me and my programming style, and the lessons I learned from it form the foundations of my OO Design world-view.
It contains little pearls of timeless wisdom throughout, and shares by example a language that we can use to discuss reusable software design patterns.
For example, delegate prototypes themselves are essentially the flyweight pattern for free.