A service lets one module use an implementation without knowing, at compile time, which module supplies it. It is Java's built-in plug-in mechanism. There are four roles: the service type (usually an interface) in an exported package, the consumer that uses it, one or more provider modules that implement it, and java.util.ServiceLoader, which finds the providers at run time. This keeps the consumer loosely coupled: you can add or remove a provider JAR on the module path without recompiling the consumer.
Keep reading for free
Create a free StudyToCert account to read the rest of this lesson: 5 more sections, 5 key terms, a real-world example, an exam tip and self-check questions. Every lesson, lab and practice test is free with an account.