chapter 7: achieving object-oriented design
Tout plus