http://qualityisspeed.blogspot.de/2014/08/why-i-dont-teach-solid.html "SOLID design leads to unintelligible software." As always, don't be dogmatic, be pragmatic.