There is one additional usage that deserves special attention: Singleton as a local application class in an ABAP report.
This is a widely accepted and commonly recommended practice when you want to apply object-oriented design inside a procedural container like a report.
Why This Is Considered AcceptableUsing a local Singleton (often named lcl_application) helps to:
Control lifecycle - Ensure the report logic is executed only once per internal session (usually via a static entry method like RUN)
Encapsulate runtime state - Calculated values, flags, or message containers stay consistent
Provide a clean entry point - Procedural top-level code, object-oriented core logic
Improve structure and maintainability - Compared to large procedural reports
Example of the simple basic version of such application you can see here
Singleton report