Design Patterns in Java
Designed for developers looking for a practical introduction to developing pattern-oriented software with Java.

Learning outcomes
- How to recognise the inherent and accidental complexities involved with developing object-oriented software.
- How pattern-oriented software architecture techniques can and cannot help to alleviate this complexity.
- How to apply key pattern-oriented software architecture techniques to develop reusable object-oriented software infrastructure and apps.
- How to apply Java programming language features and libraries to develop reusable and robust object-oriented software.
- Where to find additional sources of information on how to successfully apply pattern-oriented software architecture techniques to object-oriented software.