Jump to content

Творческий шаблон

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

Шаблоны творческого проектирования состоят из двух доминирующих идей. Один из них — это инкапсуляция знаний о том, какие конкретные классы использует система. Другой — скрыть, как экземпляры этих конкретных классов. создаются и комбинируются [1]

Шаблоны творческого проектирования подразделяются на шаблоны создания объектов и шаблоны создания классов, где шаблоны создания объектов связаны с созданием объектов, а шаблоны создания классов — с созданием экземпляров классов. Более подробно, шаблоны создания объектов перекладывают часть создания объекта на другой объект, тогда как шаблоны создания классов откладывают создание объекта на подклассы. [2]

Пять широко известных шаблонов проектирования, которые являются частями творческих шаблонов:

  • абстрактный шаблон фабрики , который предоставляет интерфейс для создания связанных или зависимых объектов без указания конкретных классов объектов. [3]
  • шаблон строителя , который отделяет построение сложного объекта от его представления, так что один и тот же процесс построения может создавать разные представления.
  • Шаблон фабричного метода , который позволяет классу отложить создание экземпляра до подклассов. [4]
  • Шаблон прототипа , который определяет тип объекта, который необходимо создать с использованием экземпляра прототипа, и создает новые объекты путем клонирования этого прототипа.
  • шаблон Singleton , который гарантирует, что класс имеет только один экземпляр, и предоставляет глобальную точку доступа к нему. [5]

Определение

[ редактировать ]

Создающие шаблоны направлены на то, чтобы отделить систему от того, как ее объекты создаются, составляются и представляются. Они повышают гибкость системы в отношении того, что, кто, как и когда создает объекты. [6]

Использование

[ редактировать ]

Поскольку современная разработка программного обеспечения больше зависит от композиции объектов , чем от наследования классов, акцент смещается от жесткого кодирования поведения к определению меньшего набора базовых поведений, которые можно объединить в более сложные. [7] Поведения жесткого кодирования негибкие, поскольку требуют переопределения или повторной реализации всего этого, чтобы изменить части дизайна. Кроме того, жесткое кодирование не способствует повторному использованию и затрудняет отслеживание ошибок. По этим причинам творческие шаблоны более полезны, чем жестко запрограммированные модели поведения. Шаблоны создания делают дизайн более гибким. Они предоставляют различные способы удаления явных ссылок в конкретных классах из кода, который должен их создать. [8] Другими словами, они создают независимость объектов и классов.

Рассмотрите возможность применения творческих шаблонов, когда:

  • Система должна быть независимой от того, как создаются ее объекты и продукты.
  • Набор связанных объектов предназначен для совместного использования.
  • Скрытие реализаций библиотеки классов или продукта, отображение только их интерфейсов.
  • Построение различных представлений независимых сложных объектов.
  • Класс хочет, чтобы его подкласс реализовал создаваемый им объект.
  • Экземпляры классов указываются во время выполнения.
  • Должен быть один экземпляр, и клиент может получить доступ к этому экземпляру в любое время.
  • Экземпляр должен быть расширяемым без изменений.

Структура

[ редактировать ]
Диаграмма классов Creational Pattern.

Ниже представлена ​​простая диаграмма классов, общая для большинства шаблонов создания. Обратите внимание, что разные творческие модели требуют дополнительных и разных участвующих классов.

Участники :

  • Создатель : объявляет интерфейс объекта. Возвращает объект.
  • ConcreteCreator : реализует интерфейс объекта.

Некоторые примеры творческих шаблонов проектирования включают в себя:

  • Шаблон «Абстрактная фабрика» : класс запрашивает необходимые ему объекты из объекта фабрики вместо того, чтобы создавать объекты напрямую.
  • Шаблон фабричного метода : централизуйте создание объекта определенного типа, выбрав одну из нескольких реализаций.
  • Шаблон Builder : отделите построение сложного объекта от его представления, чтобы один и тот же процесс построения мог создавать разные представления.
  • Шаблон внедрения зависимостей : класс принимает необходимые ему объекты из инжектора вместо того, чтобы создавать объекты напрямую.
  • Шаблон ленивой инициализации : тактика задержки создания объекта, вычисления значения или другого дорогостоящего процесса до тех пор, пока он не понадобится в первый раз.
  • Шаблон пула объектов : избегайте дорогостоящего приобретения и высвобождения ресурсов путем переработки объектов, которые больше не используются.
  • Шаблон прототипа : используется, когда тип создаваемых объектов определяется экземпляром прототипа, который клонируется для создания новых объектов.
  • Шаблон Singleton : ограничить создание экземпляра класса одним объектом.

См. также

[ редактировать ]
  1. ^ Гамма, Эрих; Хелм, Ричард; Джонсон, Ральф; Влиссидес, Джон (1995). Шаблоны проектирования . Массачусетс: Аддисон-Уэсли. п. 81 . ISBN  978-0-201-63361-0 . Проверено 22 мая 2015 г.
  2. ^ Гамма, Эрих; Хелм, Ричард; Джонсон, Ральф; Влиссидес, Джон (1995). Шаблоны проектирования . Массачусетс: Аддисон-Уэсли. ISBN  978-0-201-63361-0 . Проверено 22 мая 2015 г.
  3. ^ Фриман, Эрик; Фриман, Элизабет; Сьерра, Кэти; Бейтс, Берт (2004). Хендриксон, Майк; Лукидес, Майк (ред.). Шаблоны проектирования Head First . Калифорния: О'Рейли Медиа. п. 156. ИСБН  978-0-596-00712-6 . Проверено 22 мая 2015 г.
  4. ^ Фриман, Эрик; Фриман, Элизабет; Сьерра, Кэти; Бейтс, Берт (2004). Хендриксон, Майк; Лукидес, Майк (ред.). Шаблоны проектирования «в первую очередь» . Калифорния: О'Рейли Медиа. п. 134. ИСБН  978-0-596-00712-6 . Проверено 22 мая 2015 г.
  5. ^ Фриман, Эрик; Фриман, Элизабет; Сьерра, Кэти; Бейтс, Берт (2004). Хендриксон, Майк; Лукидес, Майк (ред.). Шаблоны проектирования Head First . Калифорния: О'Рейли Медиа. п. 177. ИСБН  978-0-596-00712-6 . Проверено 22 мая 2015 г.
  6. ^ Джудит, епископ (2007). Шаблоны проектирования C# 3.0 . Калифорния: О'Рейли Медиа. п. 336 . ISBN  978-0-596-52773-0 . Проверено 22 мая 2015 г.
  7. ^ Гамма, Эрих; Хелм, Ричард; Джонсон, Ральф; Влиссидес, Джон (1995). Шаблоны проектирования . Массачусетс: Аддисон-Уэсли. п. 84 . ISBN  978-0-201-63361-0 . Проверено 22 мая 2015 г.
  8. ^ Гамма, Эрих; Хелм, Ричард; Джонсон, Ральф; Влиссидес, Джон (1995). Шаблоны проектирования . Массачусетс: Аддисон-Уэсли. п. 85 . ISBN  978-0-201-63361-0 . Проверено 22 мая 2015 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 78b99143b8084ce3241aca5d58980f30__1709426340
URL1:https://arc.ask3.ru/arc/aa/78/30/78b99143b8084ce3241aca5d58980f30.html
Заголовок, (Title) документа по адресу, URL1:
Creational pattern - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)