“Шаблоны проектирования помогают вам научиться на чужих успехах вместо своих неудач[2].”
Возможно, что большинство важных шагов на пути к объектно-ориентированному дизайну являлось движением к "шаблонам проектирования ", которое описано в Design Patterns (ibid)[3]. Эта книга показывает 23 разных решения особого класса проблем. В ней основная концепция шаблонов проектирования приводится наряду с примерами. Это должно подтолкнуть вас к прочтению Design Patterns написанную Gamma, et. al., текст которой теперь стал неотъемлемой частью, едва ли не обязательным справочником для ООП программистов.
Последняя часть книги содержит примеры процесса эволюции проектирования, начиная с начального решения и движения через логику и процесс эволюции решения к более подходящему дизайну. Показанная программа (симулятор сортировки мусора) развивалась с течением времени, и вы можете взглянуть на эволюцию как на прототип пути развития вашего собственного дизайна, который может начаться с адекватного решения определенной проблемы и эволюционировать в гибкий подход для аналогичного класса проблем.