Early: Do everything we need at the begining.
E.g. Constructor, File Header.
Lazily: Do as it required.
E.g. Dynamic library, ...
Is it about style?
Is there any reason why do you do with that way?
It is not only in programming but also in our daily life.