Book Image

Force.com Enterprise Architecture

By : Andrew Fawcett
Book Image

Force.com Enterprise Architecture

By: Andrew Fawcett

Overview of this book

Table of Contents (20 chapters)
Force.com Enterprise Architecture
Credits
Foreword
About the Author
Acknowledgments
About the Reviewers
www.PacktPub.com
Preface
Index

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...