If your application was considered a living organism, the Service layer would be its beating heart. Regardless as to how the environment and the things that interact with it change over time, it must remain strong and able to adapt. In this chapter, we begin our journey with the three coding patterns: Service, Domain, and Selector, which were introduced in Chapter 4, Apex Execution and Separation of Concerns.
In this chapter, we will review the pattern as set out by Martin Fowler and then review how this has been applied on the Force.com 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 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.
At the end of this chapter, we will extend...