2009-04-21 5 views
45

Что такое шаблон дизайна контекстного объекта?Что такое шаблон дизайна контекстного объекта?

+7

Если вы предоставили некоторую справочную информацию о том, почему вы рассматриваете этот шаблон, вы можете получить более позитивный отклик для людей, поскольку он будет призывать больше интереса. –

+1

См. Также: [Вы можете немного объяснить шаблон проектирования контекста?] (Http://stackoverflow.com/questions/986865/can-you-explain-the-context-design-pattern-a-bit) – emallove

ответ

30

Контекст представляет собой набор данных, часто хранящихся в Map или в пользовательском классе, который действует как структура с аксессуарами и модификаторами. Он используется для поддержания состояния и для обмена информацией внутри системы. See this PDF for an indepth description. Хотя это может быть использовано для эффективного и эффективного обмена данными, вы должны заметить, что многие опасаются шаблона Context как an anti-pattern.

6

Примером может быть объект HttpSession: у вас есть атрибуты, которые в основном представляют собой карту со строковыми ключами и элементами объекта. Это обеспечивает информацию о состоянии между HTTP-запросами. Другим примером является ServletRequest, который предоставляет информацию о состоянии между сервлетами.

5

Контекстный объект инкапсулирует специфическую HTTP-информацию веб-сервера в более общей и переносимой форме.

Он используется, когда:

  • у вас есть компоненты и сервисы, которым необходим доступ к информации о системе.
  • Вы хотите отделить компоненты приложения и службы от специфики протокола информации о системе.
  • вы хотите выставить только релевантные API в контексте.

Используйте объект контекста, чтобы инкапсулировать состояние независимым от протокола способом, который будет использоваться во всем приложении.

Более подробно see this article

+6

Это слишком подробный. Возможно, вы думаете о HttpContext, а не о контексте вообще. – Slavo

2

"Контекст" происходит от "контекстуальной информации".

От Msu.edu:

контекстная информация: Информация, которая в дополнение к фактическому тексту документа, такие как посланного дата, идентификатор отправителя, идентификатор адресата, информацию о маршрутизации, и вернуть квитанции.

В большинстве фреймворков (и, следовательно, шаблона проектирования) Контекстный объект хранит информацию о входящем запросе и подтверждает ответ.

2

См. Can you explain the Context design pattern? для подробного описания рисунка.

Мое сообщение там также объясняет, почему это не анти-шаблон, но его неудачная реализация.

Смежные вопросы