0

應該將表示層分成展示對象還是接收對象還是單個對象處理雙向數據?表示層對象

回答

2

表示層應位於處理呈現和接收的接口之後。主要原因是如果你有兩個接口,一個接口,一個接收它,理論上可以分配兩個不同的對象,每個接口都會引起測試中的奇怪。

但是,如果你的界面正在發展成幾十種方法,你可能想退一步看看把它分成更小的單位然後聚合它們。不一定基於接收和呈現您的演示文稿UI的邏輯分區。

例如,你可以有一個IPresentationUI和兩個變量,一個是IPresentationDisplay和另一個IPresentationControl的接口。您擁有的唯一註冊例程將接受IPresentationUI對象。實現Prensentation層的類將實現三個接口IPresentationUI,IPresentationControl和IPresentationDisplay。

+0

所以呈現數據的同一個對象會收到新的用戶輸入,然後該對象將被傳遞給域?域決定從演示文稿對象中提取什麼?這有沒有安全風險? – zsharp 2009-05-18 17:06:43

+0

一般的想法是界面是通過表示網頁的表單或對象來實現的,並且是一個將事件傳遞給UI對象的瘦shell,並且接收關於如何繪製/設置演示文稿的說明。 UI對象負責執行原始輸入並執行修改域的命令。這包括做任何必要的安全。只有在執行該命令時纔會觸及域。所以如果安全檢查失敗,請不要執行命令。 – 2009-05-19 12:18:19

+0

這種方法的優點是,將用戶交互放在界面後面可以獲得幾個優點。首先你抽取大部分特定的UI API。因此,Web標準會發生變化,Form Frameworks會發生變化,但只要新類實現了界面,您的軟件的其餘部分就可以繼續運行。第二次測試變得更容易,因爲您可以讓模擬對象實現UI界面。第三您通過界面記錄了您的軟件如何與給定的用戶界面進行交互。 – 2009-05-19 12:20:57