什么是上下文对象设计模式?

时间:2009-04-21 10:34:45

标签: java design-patterns

什么是上下文对象设计模式?

5 个答案:

答案 0 :(得分:35)

Context是一组数据,通常存储在Map或自定义类中,作为带有访问器和修饰符的结构。它用于维护状态和在系统内共享信息。 See this PDF for an indepth description。虽然它可以用于高效和有效的数据共享,但您应该注意到许多人对Context模式an anti-pattern持谨慎态度。

答案 1 :(得分:6)

它的一个例子可能是HttpSession对象:你的属性基本上是一个带有String键和Object元素的映射。这提供了http请求之间的状态信息。另一个例子是ServletRequest,它在Servlet之间提供状态信息。

答案 2 :(得分:4)

上下文对象以更通用和可移植的形式封装特定于Web服务器的HTTP信息。

在以下情况下使用:

  • 您拥有需要访问系统信息的组件和服务。
  • 您希望将应用程序组件和服务与系统信息的协议细节分离。
  • 您希望仅在上下文中公开相关的API。

使用上下文对象以独立于协议的方式封装状态,以便在整个应用程序中共享。

详细信息see this article

答案 3 :(得分:3)

“上下文”来自“上下文信息”。

来自Msu.edu:

  

上下文信息:除文档实际文本外的信息,例如发送日期,发件人身份,收件人身份,路由信息和回执。

在大多数框架中(以及设计模式),Context Object存储有关传入请求的信息并证实响应。

答案 4 :(得分:2)

有关模式的详细说明,请参阅Can you explain the Context design pattern?

我的帖子也解释了为什么它不是一个反模式 - 但它的拙劣实现是。