0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Шаблон проектирования это типовое решение для типовой задачи. Термин пришёл в программирование из архитектуры. В 1970-е годы архитектор Кристофер Александр составил набор шаблонов проектирования, типовых решений для различных архитектурных задач. Спустя полтора десятка лет эта идея была заимствована и адаптирована применительно к разработке графических оболочек языка SmallTalk. Сейчас паттерны встречаются повсеместно, постоянно изобретаются и переизобретаются. Некоторые из них описывают задачи, связанные с небольшим участком кода, другие определяют, например, способы работы в распределённых системах. Причём последние отвязаны от языка программирования. Интересный факт: некоторые шаблоны в языках появились вследствие ограничений самих языков и пытаются обойти их.</p>
1
<p>Шаблон проектирования это типовое решение для типовой задачи. Термин пришёл в программирование из архитектуры. В 1970-е годы архитектор Кристофер Александр составил набор шаблонов проектирования, типовых решений для различных архитектурных задач. Спустя полтора десятка лет эта идея была заимствована и адаптирована применительно к разработке графических оболочек языка SmallTalk. Сейчас паттерны встречаются повсеместно, постоянно изобретаются и переизобретаются. Некоторые из них описывают задачи, связанные с небольшим участком кода, другие определяют, например, способы работы в распределённых системах. Причём последние отвязаны от языка программирования. Интересный факт: некоторые шаблоны в языках появились вследствие ограничений самих языков и пытаются обойти их.</p>
2
<p>Как минимум один паттерн проектирования мы уже знаем по уроку "статические методы". Его называют Фабрика. Фабрика - функция, создающая объекты по каким-то сложным условиям.</p>
2
<p>Как минимум один паттерн проектирования мы уже знаем по уроку "статические методы". Его называют Фабрика. Фабрика - функция, создающая объекты по каким-то сложным условиям.</p>
3
<p>Возможно, вы удивитесь, что для такой примитивной задачи придуман целый паттерн, и будете правы. Паттерн - не обязательно что-то сложное и доступное только избранным. Паттерном называют любую задачу, которая повторяется безотносительно оценки сложности решения. Поэтому, хотите вы того или нет, в вашем коде уже встречаются шаблоны проектирования, даже если вы об этом не знаете. Правда, до некоторых типовых решений самостоятельно дойти крайне сложно.</p>
3
<p>Возможно, вы удивитесь, что для такой примитивной задачи придуман целый паттерн, и будете правы. Паттерн - не обязательно что-то сложное и доступное только избранным. Паттерном называют любую задачу, которая повторяется безотносительно оценки сложности решения. Поэтому, хотите вы того или нет, в вашем коде уже встречаются шаблоны проектирования, даже если вы об этом не знаете. Правда, до некоторых типовых решений самостоятельно дойти крайне сложно.</p>
4
<p>Насколько важно изучать шаблоны проектирования? Не отрицая полезность, предупрежу, что большинство описаний шаблонов в интернете завязано на<a>конкретную книгу</a>. Далеко не все паттерны, описанные в ней, полезны и встречаются в обычной жизни. Многие из них специфицированы под конкретные языки и не применимы в том же виде в других языках. Ещё больше паттернов (на порядки) в этой книге не описано.</p>
4
<p>Насколько важно изучать шаблоны проектирования? Не отрицая полезность, предупрежу, что большинство описаний шаблонов в интернете завязано на<a>конкретную книгу</a>. Далеко не все паттерны, описанные в ней, полезны и встречаются в обычной жизни. Многие из них специфицированы под конкретные языки и не применимы в том же виде в других языках. Ещё больше паттернов (на порядки) в этой книге не описано.</p>
5
<p>Как только появились паттерны, то не могли не появиться и антипаттерны. Антипаттерн - такое же типовое решение (потому что им часто пользуются), но создающее больше проблем, чем приносящее пользы. Обычно такие решения возникают из-за непонимания причинно-следственных связей в коде.</p>
5
<p>Как только появились паттерны, то не могли не появиться и антипаттерны. Антипаттерн - такое же типовое решение (потому что им часто пользуются), но создающее больше проблем, чем приносящее пользы. Обычно такие решения возникают из-за непонимания причинно-следственных связей в коде.</p>
6
<p>С паттернами и антипаттернами мы будем знакомиться на протяжении всех дальнейших курсов.</p>
6
<p>С паттернами и антипаттернами мы будем знакомиться на протяжении всех дальнейших курсов.</p>