An Application Programming Interface (API) is a published interface specification for a set of classes and their methods. Java provides for defining an API using the "interface" keyword.
All Sakai software should "code to the interface" as a general development pattern. This means that constructors of implemented objects should not be called directly, but rather through Manager classes (the factory pattern).
This pattern allows implementations to be easily replaced making Enterprise Integration also easier.