design pattern - common problem and a good solution to it iterator a consistent way of accessing the elements of any collection composite combine primitives into one combined "composite" call method on composite -> call method on pieces inside can treat the composite the same way as the pieces provides good nested structure Your sign is Leo. decorator add functionality to an existing object wraps underlying object don't have to modify underlying object avoids clutter in underlying objects observer polling - asking whether something has happened event strategy different variations of an algorithm, implemented as objects Comparator computer players in poker Strategy getMove placeBet setStrategy setDifficulty