Продолжая открывать новые возможности в своих приложениях, обнаруживаете ли вы, что предлагаемые вами решения настолько похожи на некоторые вещи, которые вы реализовывали раньше? Если вы программист (даже если вы начинаете совсем недавно), вы, вероятно, ответили «да». Похоже, вы используете какой-то старый код для решения вновь обнаруженных проблем во время разработки программного обеспечения. Возможно, вы поняли, что ваше решение — это фундаментальный принцип, метод, который может широко повторяться не только вами, но и всеми профессиональными разработчиками.
Фактически, многие проблемы программирования встречаются неоднократно, и появилось множество базовых методов (или шаблонов проектирования) для решения этих проблем. Шаблон проектирования — это шаблон, который учит вас, как организовать код с использованием аутентичного и надежного дизайна.
История шаблонов проектирования
Термин «шаблон проектирования» изначально был придуман в области архитектуры. В своей книге 1977 года «Язык шаблонов: города/здание/строительство» Кристофер Александер описывает некоторые распространенные проблемы архитектурного проектирования и объясняет, как использовать набор существующих, хорошо известных шаблонов для создания новых и эффективных проектов. Точка зрения Александра хорошо применима к разработке программного обеспечения, и существует долгосрочный консенсус по использованию существующих компонентов для создания новых решений.
Все шаблоны проектирования имеют некоторые общие характеристики: имя, постановку проблемы и решение.
1. Идентификация шаблона проектирования важна, поскольку она позволяет другим программистам сразу понять назначение вашего кода без необходимости слишком глубокого изучения (по крайней мере, благодаря этой идентификации программисты будут знакомы с этим шаблоном). ?
2. Описание задачи служит для иллюстрации области применения данной модели. ?
3. Решение описывает выполнение данной модели. Хорошее обсуждение шаблона проектирования должно охватывать преимущества и недостатки использования модели. ?
Расширять