Шаблон проектирования программного обеспечения


В программной инженерии шаблон проектирования программного обеспечения — это общее, многократно используемое решение часто возникающей проблемы в заданном контексте разработки программного обеспечения . Это не готовый проект, который можно преобразовать непосредственно в исходный или машинный код . Скорее, это описание или шаблон решения проблемы, который можно использовать в самых разных ситуациях. Шаблоны проектирования — это формализованные передовые методы , которые программист может использовать для решения общих проблем при разработке приложения или системы.

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

Шаблоны проектирования можно рассматривать как структурированный подход к компьютерному программированию, промежуточный между уровнями парадигмы программирования и конкретным алгоритмом .

Узоры возникли как архитектурная концепция Кристофера Александра еще в 1977 году (см. «Узор улиц», ЖУРНАЛ AIP, сентябрь 1977 г., том 32, № 3, стр. 273–278). В 1987 году Кент Бек и Уорд Каннингем начали экспериментировать с идеей применения шаблонов в программировании, особенно в языках шаблонов, и в том же году представили свои результаты на конференции OOPSLA . [1] [2] В последующие годы Бек, Каннингем и другие продолжили эту работу.

Шаблоны проектирования приобрели популярность в компьютерных науках после того, как в 1994 году так называемой «Бандой четырех» (Gamma et al.), Которую часто называют сокращенно «GoF», была опубликована книга « Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения ». В том же году была проведена первая конференция «Языки шаблонов программирования », а в следующем году был создан Портлендский репозиторий шаблонов для документирования шаблонов проектирования. Объем термина остается предметом споров. Известные книги в жанре шаблонов проектирования включают:

Хотя шаблоны проектирования применяются практически уже давно, формализация концепции шаблонов проектирования затянулась на несколько лет. [3]