I know that using dependency injection instead of for example singletons for shared resources is a good practice. Sometimes though this approach seams very messy.
Ima