Посты с тэгом паттерны проектирования


Python реализация парадигмы event-driven с помощью сопрограмм


Статья про то, как с помощью расширенных генераторов Python сделать собственную реализацию сопрограмм, переключающихся по получению событий. Простота кода получившегося модуля вас приятно удивит и прояснит новые и мало используемые возможности языка, которые можно получить, используя такие генераторы. Статья поможет разобраться и с тем, как это устроено в серьезных реализациях: asyncio, tornado, etc.
Читать дальше →


Паттерны проектирования без ООП

Во времена, когда я писал на Лиспе и совсем не был знаком с ООП, я пытался найти паттерны проектирования, которые мог бы применить у себя в коде. И всё время натыкался на какие-то жуткие схемы классов. В итоге сделал вывод, что эти паттерны в функциональном программировании не применимы.

Теперь я пишу на Питоне и с ООП знаком. И паттерны мне теперь намного понятней. Но меня по-прежнему воротит от развесистых схем классов. Многие паттерны прекрасно работают в функциональной парадигме. Опишу несколько примеров. Читать примеры



[recovery mode] Альтернативное описание паттернов проектирования

В настоящие время, кроме знаменитой книги Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. Приемы объектно-ориентированного проектирования. Паттерны проектирования, существует много различных источников, как по самим паттернам проектирования, так и по примерам их применения, да еще на разных языках программирования. С учетом этого и того, что во многих случаях, очень сложно различить один паттерн проектирования от другого, поскольку не всегда имеется его четкое, формальное определение, сводит в результате все положительные моменты от применения паттернов проектирования к нулю. Особенно это заметно на часто прилагаемой к примерам диаграммах на UML, поскольку они получаются малоинформативными и как бы ни о чем.

Критерии «идеального» решения


  • Выбрать пример, на котором можно продемонстрировать большинство паттернов проектирования.
  • Постановка задачи для примера должна быть простой, а предметная область примера всем знакомой.
  • Не давать опре