Lazy Loading

Lazy loading is a way to defer initialization of an object until it is needed. It may provide additional efficiency in the program's operation, especially if such initialization is costly, e.g. accessing network services or database. The opposite of lazy loading is eager loading.