上下文物件
來源:http://corej2eepatterns.com/C…
問題需求
您希望避免在相關上下文之外使用特定協議的系統資訊
- 您想訪問系統資訊中的元件和服務
- 您想通過系統資訊的特定協議解耦應用中的元件和服務
- 您只想暴露上下文中關聯的APIs
解決方案
您可以使用上下文物件來封裝狀態,並以獨立協議的方式在整個應用中共享
策略
-
請求上下文策略
- 請求上下文Map策略
- 請求上下文POJO策略
- 請求上下文Validation策略
-
配置上下文策略
- JSTL配置策略
- Security上下文策略
-
一般上下文物件策略
- 上下文物件Facrory策略
- 上下文Auto-Population策略
結論
- 提升可複用性和可維護性
- 提升可測性
- 降低介面演變的約束
- 效能降低
相關模式
- 攔截過濾器模式
攔截過濾器可以在web請求的處理過程中使用ContextFactory建立一個上下文物件 - 前端控制器模式
前端控制器可以使用contextFactory在web請求處理的過程中建立一個上下文物件 - 應用控制器模式
應用控制器可以使用contextFactory在web請求處理的過程中建立一個上下文物件 - 傳輸物件
傳輸物件是專門用於跨遠端層的傳輸狀態,用來減少網路通訊,而上下文物件是用來隱藏實現細節,提高可複用性和可維護性