Projeto de arquitetura modular em Java usando JPMS para separar contratos, implementações e consumidores de forma desacoplada.
Demonstra:
- contratos públicos bem definidos
- implementações desacopladas
- carregamento dinâmico de serviços com ServiceLoader
- encapsulamento forte entre módulos
This repository represents a single modular system split into multiple JPMS modules:
Defines public contracts (interfaces) shared between modules.
Implements business logic and provides a concrete implementation of the public API.
Consumes the public API using ServiceLoader, enabling loose coupling and plugin-like behavior.
Cross-cutting logging module shared across implementations.
The system demonstrates how to design a modular Java application with:
- clear contracts
- decoupled implementations
- dynamic service loading
- strict module encapsulation