Summary
The Selector pattern provides a powerful layer of encapsulation for some critical logic in your application. It also enforces best practices around security and provides a more consistent and reliable basis for code dealing with the SObject
data.
Selectors can also take on the responsibility and concern for platform features such as Multi-Currency and Field Sets. Ultimately allowing the caller, be that the Service, Domain, or even Apex Controllers, or Batch Apex to focus on their responsibilities and concerns, this leads to cleaner code that is easier to maintain and evolve.
With the introduction of the Selector factory, we provide a shortcut to access this layer in the form of the Application.Selector.selectById
and Application.Selector.newInstance
methods, opening up potential for other patterns such as caching. Also, a mocking framework was demonstrated that permitted additional, more focused, and varied tests to be written around the consumers of the Selector layer without the...