First of all, sorry for my bad English, I hope you understand what I'm saying.

Here is my problem:

Lets assume i have an MVC application including standard router, controller, model(service) layer and some kind of db connector.  

Model layer depends on a db connector, controllers depends on models/services and the top-level "application" class depends on routers and controllers.  

My object hierarchy looks like this: 

`App -> ControllerFactory -> ServiceFactory -> DAO -> DbConnection` 

Perhaps, written above doesn't look like best application architecture ever, but i want to focus on the other thing:  

When i'm trying to instantiate an App class i should pass all dependencies to the class instantiated; class dependencies, in turn, has their own dependencies and so on.  

As a result I get all hierarchy stack instantiated at once. But what if i dont need to access the database in some cases; what if some controllers are used for rendering static templates without model interaction?  

I mean, what if there are some special cases when class does not require its own dependencies(and in some cases it does)? Should i inject dependencies conditionaly or something?  

I'm really stuck at this point and i don't know what to do.