Application Service Layer
If your application were considered a living organism, the Service layer would be its beating heart. Regardless of how the environment and the things that interact with it change over time, it must remain strong and be able to adapt. In this chapter, we begin our journey with the three coding patterns – Service, Domain, and Selector – that were introduced in Chapter 4, Apex Execution and Separation of Concerns.
In this chapter, we will review the Service layer pattern as set out by Martin Fowler and then review how this has been applied to the Salesforce Platform in Apex, describing design guidelines born from the separation of concerns we defined in the previous chapter.
One concern of this layer is interacting with the database; a later chapter will cover querying this in more detail. This chapter will focus on updating the database and introducing a new pattern, Unit of Work, which helps make your code more streamlined and bulkified...