Прочитать книгу Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения . Насколько я помню, есть довольно хороший пример.