When building a server application, time and energy must be spent on designing the public interface or API. The public interface is the contract between the server application and all applications using the server. If the public interface is changed, all applications using that interface will now be broken. Therefore, care must be taken in designing a suitable interface.
It is common practice to maintain compatibility with original interfaces while providing new functionality through extensions of the original interface.
For example, new functionality and values are available for an interface named getCreditScore. Instead of modifying the original interface, a new interface is created named getCreditScoreEx. This ...