take for example a document processing system ...

managing composites

problem -- very many items

solution -- flyweight class

managing layout and formatting

problem -- many algorithms

solution -- composer (strategy) class

display item with attributes

problem -- non-uniform attributes

solution -- embed and hide attributes

develop multi-platform tools (1)

problem -- different window toolkits

solution -- employ platform-specific factories

develop multi-platform tools (2)

problem -- offer uniform widget hierarchy

solution -- separate interface from implementation

provide rich functionality

problem -- support commands with undo

solution -- abstract from specific commands