Java design patterns : a tutorial - Cooper, James W. (Addison-Wesley, 2000)