This is a curious book. Although the title contains both the words 'patterns' and 'Java', it actually contains very little of either. Claiming to follow-on from volume one (which was heavily focused on design patterns in the style of Gamma et al), this book actually contains some reasonable material--although most of it is off-topic from the title. The first few chapters are devoted to UML and the software life-cycle, which are then rapidly followed by some GUI 'patterns', patterns such as 'conditional compilation', 'assertion testing' and some testing 'patterns' such as 'white-box testing'.
I'm left with a strange uncertainty of what the author was trying to achieve. He covers many lifecycle issues at a very high level (presumably due to lack of space), but the follow-on from the first volume is tenuous at best (although he manages both copious back- references to it and a few forward references to Volume 3 for good measure.) What content there is covers such wide-ranging topics (to the above examples add a complete TCP/IP client and server implementation and a chapter on basic testing techniques) that the depth of all of it is disappointing.