2009-04-21 210 views
45

什麼是上下文對象設計模式?什麼是上下文對象設計模式?

+7

如果您提供了一些背景資料,說明您爲什麼考慮這種模式,您可能會收到更積極的迴應,因爲它會引起更多的興趣。 – 2009-06-13 17:26:21

+1

另請參見:[你可以解釋一下Context設計模式?](http://stackoverflow.com/questions/986865/can-you-explain-the-context-design-pattern-a-bit) – emallove 2013-11-01 20:06:27

回答

30

上下文是數據的集合,通常存儲在Map或自定義類中,該自定義類充當具有訪問器和修飾符的結構。它用於維護狀態並在系統內共享信息。 See this PDF for an indepth description。雖然它可以用於高效和有效的數據共享,但您應該注意到,許多人都對Context模式保持警惕,如an anti-pattern

6

它的一個例子可能是HttpSession對象:你的屬性基本上是一個帶有String鍵和Object元素的映射。這提供了http請求之間的狀態信息。另一個例子是在Servlet之間提供狀態信息的ServletRequest。

5

上下文對象以更一般和便攜的形式封裝了Web服務器特定的HTTP信息。

當它用於:

  • 你的組件和需要訪問該系統的信息服務。
  • 您想要將應用程序組件和服務與系統信息的協議細節分離。
  • 您只想在上下文中公開相關的API。

使用上下文對象以獨立於協議的方式封裝狀態以在整個應用程序中共享。

更多細節see this article

2

「上下文」 來自 「上下文信息」。

從Msu.edu:

上下文信息:那就是除了文檔的實際文本,如發送日期,發件人的身份,收件人的身份,路由信息,並返回回執信息。

在大多數框架(以及設計模式)中,上下文對象存儲關於傳入請求的信息並確認響應。