31 lines
1.1 KiB
Markdown
Raw Normal View History

---
title: Lazy Loading
2021-09-12 13:27:23 +03:00
category: Idiom
language: en
2015-12-28 15:52:44 +02:00
tags:
- Performance
---
## Intent
Lazy loading is a design pattern commonly used to defer
initialization of an object until the point at which it is needed. It can
contribute to efficiency in the program's operation if properly and
appropriately used.
## Class diagram
![alt text](./etc/lazy-loading.png "Lazy Loading")
## Applicability
Use the Lazy Loading idiom when
* eager loading is expensive or the object to be loaded might not be needed at all
## Real world examples
* JPA annotations @OneToOne, @OneToMany, @ManyToOne, @ManyToMany and fetch = FetchType.LAZY
2016-04-16 08:52:16 +03:00
## Credits
2016-04-15 08:38:08 +03:00
2020-07-06 13:31:07 +03:00
* [J2EE Design Patterns](https://www.amazon.com/gp/product/0596004273/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596004273&linkCode=as2&tag=javadesignpat-20&linkId=48d37c67fb3d845b802fa9b619ad8f31)
* [Patterns of Enterprise Application Architecture](https://www.amazon.com/gp/product/0321127420/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0321127420&linkCode=as2&tag=javadesignpat-20&linkId=d9f7d37b032ca6e96253562d075fcc4a)