In the SaaS world, often customers will want their own customizations into the source code specific to how they want to do business with your software.
Here is a point where object oriented programming stands out. By crafting your programming in such a way that basic functionality is enhanced - you can use different classes specific to particular customers for enhanced implementation.
Since we are going to potentially be using one of multiple classes, we need to have an interface describing the methods available in the class.