The command pattern
While designing various frameworks (or APIs), it is a common requirement for developers to want client(s) to extend the capabilities of the framework and plug in their specific business functionalities, which can work in conjunction with the framework functionality. This approach can be very beneficial to clients as it allows them to add their specific business logic to the framework and attune all the functionalities as per their business needs.
At Universal Call Center, the team realized that the functionality being built can be packaged as an AppExchange
package for a wider reach. The team started laying out a high-level approach and soon hit a roadblock. An application needs to have a bulk data processing capability to be fulfilled by an Apex batch process. However, on completion of the batch process execution, the application is expected to invoke a client-specific post-processing functionality.
The team plans to develop a factory method implementation...