Java modular design¶
Java modular design refers to the architectural approach and specific technologies introduced in the Java ecosystem to decompose monolithic applications into smaller, manageable, and interacting parts.^[100-inbox-java-jigsaw.md]
Overview¶
This design paradigm is strongly associated with Project Jigsaw, which introduced the module system to the Java platform.^[100-inbox-java-jigsaw.md] The primary goal is to provide a standard structure for applications and the JDK itself, allowing developers to group related code and resources into single units known as modules.^[100-inbox-java-jigsaw.md]
Key Characteristics¶
- Strong Encapsulation: Modules define clear boundaries for what parts of the code (packages, classes) are accessible externally and what are internal implementation details.^[100-inbox-java-jigsaw.md]
- Reliable Configuration: The system explicitly declares dependencies between modules, ensuring that all required components are present at compile time and runtime.^[100-inbox-java-jigsaw.md]
- Scalable Platform: By modularizing the JDK itself, Java allows for custom runtime configurations that include only the necessary components, reducing the footprint of the application.^[100-inbox-java-jigsaw.md]
Related Concepts¶
- [[Project Jigsaw]]
- [[Encapsulation]]
Sources¶
^[100-inbox-java-jigsaw.md]