SeamFramework.orgCommunity Documentation

部 III. æœ€å¤§ç¨‹åº¦åœ°ä½¿ç”¨å¼·é¡žåž‹ï¼ˆstrong typing)

Web Bean 的第二個重點就是 strong typing(強類型)。有關於 Web Bean 的相依性、攔截器與裝飾器的相關資訊,以及有關於某個事件產生器的事件用戶的相關資訊都包含在編譯器可驗證的 typesafe Java 架構中。

您在 Web Bean 的程式碼中不會看見基於字串的識別符號,這不是因為 framework 透過使用預設的規則來將它隱藏起來 — 又稱為「configuration by convention」 — 而是因為一開始根本就沒有任何字串!

這個作法明顯的好處就是任何 IDE 都可在不使用特殊工具的情況下提供自動完成(autocompletion)、驗證(validation)和重整(refactoring)。還有一個較沒那麼明顯且直接的好處。當您希望透過標記來識別物件、事件或是攔截器而不是透過名稱時,您可提昇您程式碼的語意層級(semantic level)。

Web Bean 鼓勵您使用塑造概念的標記,例如

而不是使用像是

這些標記可重複使用。它們協助描述系統不同部份的通用要點(common qualities)。它們協助我們分類和理解我們的程式碼。它們協助我們利用通用的方式來處理一般的問題。它們讓我們的程式碼變得更文字化且更容易理解。

Web Bean stereotype 將這個概念帶領到了另一個更為進階的領域。固定刻板模式(stereotype model)是您應用程式架構中的一個通用角色(role)。它將該角色的各種屬性(包括 scope、攔截器綁定〔interceptor binding〕,建置類型〔deployment type〕等等)壓縮進了一個單獨、可重複使用的套件中。

就連 Web Bean XML 的 metadata 也屬於強類型!XML 沒有編譯器,因此 Web Bean 利用了 XML schema 來驗證出現在 XML 中的 Java 類型和屬性。這個方法使得 XML 變得更文字化,就和標記使得我們的 Java 程式碼變得更容易理解一樣。

我們現在已準備好談到一些更為進階的 Web Bean 功能。請記得,這些功能是為了使我們的程式碼變得易於驗證和較容易理解。實際上大部分的時候您都不會真的需要使用到這些功能,不過若您可有效地利用這些功能的話,您將可體會到這些功能的強大。