The singleton design pattern restricts the instantiation of a class to only one object.
This is a useful design pattern in Apex and is frequently used. As discussed in the previous chapter, Salesforce has various governor limits; for example, a number of SOQL queries, a number of query rows returned, and a number of DML operations that can be performed in a single request.
Using the singleton design pattern, we can make sure that utility classes are instantiated only once, which can help in avoiding governor limits.
The sales division of a call center receives calls either from a customer or broker who is interested in the product. If a call comes directly from a customer, then the call center agents need to create a new opportunity ...