Scala, Design Patterns, Programming, Delegation, Coding.
more difficult and complicates extensibility as a complex understanding of the class hierarchy could be needed to extend the application. To control this problem the inheritance graph should be as shallow as possible and also there should be used other techniques for code reuse like composition