Skip to content

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]
  • [[Project Jigsaw]]
  • [[Encapsulation]]

Sources

^[100-inbox-java-jigsaw.md]