SeamFramework.orgCommunity Documentation
Web Bean 的第一個重點就是 loose coupling(鬆散結合性)。我們已經看過了三種 loose coupling 的方式:
deployment types(建置類型)可啟用建置時間多型性(deployment time polymorphism)、
producer methods 可啟用 runtime Polymorphism(執行期多型性),以及
contextual lifecycle management 可 decouple Web Bean 的生命週期。
這些技巧都可用來啟用客戶端以及伺服器的 loose coupling。客戶端已不再固定綁定至一個特定 API 的實做,並且它亦無須管理伺服器物件的生命週期。這個方法能讓有狀態的物件被視為服務一般地來進行互動。
Loose coupling 會使系統變得更加動態式。系統可透過充足定義的方式來回應變更。過去,有許多 framework 嘗試了提供以上所列出的功能,不過卻都是藉由犧牲了 type safety 來達成的。Web Bean 是第一個以 typesafe 的方式來實現此層級的 loose coupling 的技術。
Web Bean 提供了三個額外的重要功能以用來達成 loose coupling:
interceptors(攔截器)可區分技術問題與商業邏輯,
decorators(裝飾器)可被用來區分一些商業問題,並且
event notifications(事件通知)可區分事件產生器(event producer)與事件用戶(event consumer)。
讓我們先來探討攔截器(interceptor)。