March 2012
Intermediate to advanced
384 pages
7h 59m
English
A goal in designing software systems is the ability to extend the system without modifying the existing codebase. Abstraction plays a central role in accomplishing this goal, but simply adding new functionality to an existing system is only part of the battle. We also want to be able to deploy those new additions without redeploying the entire application. The extensibility patterns focus on helping us achieve this goal. The extensibility patterns include
• Abstract Modules: Depend upon the abstract elements of a module.
• Implementation Factory: Use factories to create a module’s implementation classes.
• Separate Abstractions: Place abstractions and the classes that implement them in separate modules.
Read now
Unlock full access