Book Image Enterprise Architecture

By : Andrew Fawcett
Book Image Enterprise Architecture

By: Andrew Fawcett

Overview of this book

Table of Contents (20 chapters) Enterprise Architecture
About the Author
About the Reviewers

Extending the 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 alterative means to calculate championship points 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);

We can then reference a custom setting (the Application setting has been included in the source code for this chapter) to determine whether Developer X has provided an implementation of this interface to call instead of the standard calculation code. The following code uses the Type.forName methods to construct at runtime the Apex type and create an instance of the type that can be cast to the interface.

Notice how the code supports Developer X providing a class name that is...