Your comments

Предложение состоит не столько в тексте, как в добавлении примеров "кода до применения паттерна". Потом произвели рефакторинг, и получили "код после применения паттерна".

Возможно пример с фигурами запутывает. Не ясно почему мы "хотим расширить иерархии по цвету". Цвет как характеристика сразу воспринимается как свойство суперкласса Фигура. А вот "тип фигуры" в виде "Квадрат" и "Треугольник" как раз легко понимается как наследник, а не как свойство, хотя и эта характеристика может быть свойством. Другой пример, возможно, не дал бы такой путаницы.


Именно благодаря этому, после прочтения, хотелось бы посмотреть на реальный кэйс проблемы или задачи, который мы решаем в виде исходного кода. 
Желание иметь пример БЫЛО (до использования паттерна, или его незнание) возникало и в других статьях о паттернах. Например, из статьи о паттерне "Prototype": 

> Не каждый объект удастся скопировать таким образом, ведь часть его состояния может быть приватной и недоступна для остального кода программы

Такие описания хорошо бы снабжать примерами. 


Часто читая примеры, видишь как все красиво, и уже не помнишь а в чем же была проблема, или как можно было по-другому.