Extension object. In Pattern languages of program design (1997)

by Erich Gamma