Iced Tea in Crete 2012:Java Application Architecture - modularity patterns
From WikiEducator
Java Application Architecture - modularity patterns |
---|
Convenor: Thomas Darimont |
Participants:
|
Summary:
|
Recommendations:
No recommendations provided. |
The following modularity patterns were discussed:
- Base Patterns:
- Manage Relationsships / Dependencies (Explicitly model the dependencies of your modules)
- Make your modules reuseable
- Provide cohesive modules - don't do to many things in one module
- Dependency Patterns:
- Avoid Acyclic Relationships
- Levelize Modules
- Represent the physical Layers as modules
- Define container independent modules
- Make your modules independently deployable
- Usability Patterns:
- Have one published interface per module (=> A set of public classes / interfaces / public methods)
- Make your modules externally configurable
- Always provide a default implementation for a module interface
- Provide an module facade to make it easier for the clients to work with the module
- Extensibility Patterns:
- Abstract modules
- Use an indirection layer (e.g. factories) to get implementations
- Separate abstractions
- Utility Patterns
- Colocate exceptions
- Levelize your module builds
- Provide an explicit test-module per module