Java software solutions : foundations of program design - Lewis, John 1963- (Addison-Wesley, 1998)