Description
Creates proxy objects that delay constructing the real object until it is needed. It helps frameworks and applications avoid expensive setup while still presenting an object-like interface to the rest of the code.
Developers use it when lazy initialization improves startup or avoids unnecessary work. Proxy behavior can make debugging less obvious, so important lifecycle paths should be tested.