閘道
封裝存取外部系統或資源的物件。
完整說明請參閱 EAA 的 P 第 466 頁
有趣的軟體很少獨立存在。即使是最純粹的物件導向系統,也常必須處理非物件的事物,例如關聯式資料庫表格、CICS 交易和 XML 資料結構。
存取此類外部資源時,通常會取得其 API。不過,這些 API 本質上會有點複雜,因為它們考量了資源的性質。任何需要了解資源的人,都需要了解其 API,無論是關聯式資料庫的 JDBC 和 SQL,還是 XML 的 W3C 或 JDOM。這不僅讓軟體更難理解,如果未來某個時間點將資料從關聯式資料庫轉移到 XML 訊息,也會讓變更變得更困難。
答案如此常見,幾乎不值一提。將所有特殊 API 程式碼包裝到一個類別中,其介面看起來像一般物件。其他物件透過此閘道存取資源,閘道會將簡單的方法呼叫轉換為適當的專門 API。