Java in practice design styles and idioms for effective Java - Warren, Nigel; Bishop, Philip (Addison-Wesley, 1999)