跳轉到內容

WebObjects/Wirehose/快速開發

來自華夏公益教科書

WireHose 框架旨在幫助您更快地構建內容管理和門戶應用程式。您可以使用它們從頭開始構建新應用程式,或者將 WireHose 功能新增到現有程式碼庫中,通常無需對 WireHose 物件進行子類化。

Xcode 模板

[編輯 | 編輯原始碼]

WireHose 提供了 Xcode 模板來建立新的 WireHose 應用程式和框架。它還包括用於快速構建新頻道、頻道工廠、可標記和可索引實體的模板,以及用於呈現和編輯頻道和資源的元件。

使用介面而不是子類化

[編輯 | 編輯原始碼]

WireHose 定義了幾個 Java 介面,您可以實現這些介面,使您能夠將 WireHose 支援新增到您現有的企業物件類中。WHEnterpriseObject 提供了用於自動發現實現介面的實體以及對支援給定介面的所有實體執行獲取的方法。WHFetcher 定義了一個基於實體名稱或介面獲取、快取和檢索物件的介面,並且WHCachingDataSource 提供了一個預設實現,它也充當 EODataSource,因此您可以使用它來驅動顯示組。大多數介面都提供了預設實現,因此您需要編寫以支援特定介面所需的程式碼量最少。

在執行時建立實體

[編輯 | 編輯原始碼]

WireHose 廣泛使用實體繼承,利用了以下事實:如果實體在執行時不可見,則描述該實體的任何資料庫行都簡單地對應用程式不可用。這是一種簡單但有效的方法,可以將物件分割槽到共享相同程式碼庫且僅在配置檔案或啟動引數上不同的獨立應用程式例項之間。例如,如果您部署了多個新聞門戶,連線到西雅圖門戶的使用者應該只看到西雅圖地區的交通攝像頭,而波特蘭使用者應該只看到波特蘭地區的交通攝像頭,但兩者都應該能夠訪問國家新聞提要。

WHEnterpriseObject 提供了幾種在執行時動態建立子實體的方法,因此您不必在 EOModeler 中手動建模許多常見的繼承型別。這些方法對於水平繼承和單表繼承特別方便。

WHEnterpriseObject 還包括對“基於附屬關係的繼承”的特殊支援,許多 WireHose 實體都使用這種方法。在這種方法中,您在基本實體上定義一個名為“附屬關係”的屬性。此屬性與限制性限定符一起使用來標識子實體。WHApplicationHelperWHTag 使用“預設附屬關係”來確定應該使用哪個子實體。WHApplicationHelper 還允許應用程式同時訪問多個附屬關係,並且 WHEnterpriseObject 可以自動為所有可用附屬關係建立子實體。

資料庫獨立性

[編輯 | 編輯原始碼]

WHEnterpriseObject 使在應用程式啟動時在資料庫之間切換變得簡單。可以透過命令列引數動態替換 EOModel 連線字典,因此您可以在開發和部署期間使用不同的資料庫,或者將同一應用程式的多個例項部署到多個數據庫後端。WireHose 還廣泛使用屬性原型,因此即使在不同資料庫供應商之間切換時,也不需要修改模型。此外,由於資料庫在支援布林值的方式上有所不同,WHEnterpriseObject 提供了實用程式方法,這些方法透明地設定和檢索布林值,無論列是定義為 INT、BOOLEAN 還是 CHAR。


開始內容經 Gary Teter 許可使用。WireHose 和眼球箭頭徽標是 Gary Teter 的商標。

華夏公益教科書