Extending application logic with Apex interfaces
An Apex interface can be used to describe a point in your application logic where custom code written by Developer X can be called. For example, in order to provide an alternative means to calculate championship points as driven by Developer X, we might expose a global interface describing an application callout that looks like this:
global class ContestantService {
global interface IAwardChampionshipPoints {
void calculate(List<Contestant__c> contestants) ;
}
}
If you are not using a managed package to distribute your application, you do not need to use the global
modifier as shown above. Since, in the case of unmanaged packages, everything contained within them is by default visible (including source code) to the org that has the package installed.
By querying Custom Metadata records from the Callouts Custom Metadata type, which has been included in the source code for this chapter, the...