由於是速讀也就速寫。
進入主題。ViewPresnter 只是一個Microsoft告訴我們如何把領域對象和Asp.net頁面交互寫好,其中沒有用 到任何新的Assembly,只是單單是個編程技巧或者說一種編程方法。整個交互過程基本與MVC模式相同。主要分爲4個部分
領域對象 Customer 沒有什麼特別的地方。
View層 由Default.aspx和IApproveCustomerView一起完成,其中IApproveCustomerView從接口名稱可以看出,是用於批准Customer所使用的業務界面。也就說View接口是完成一次業務過程中,在UI層必須完成的功能。在這個接口中可以看到三個方法。
AllowApproveCustomer.set方法,設定Customer是否能被批准
Customer.set屬性,設定這次批准的Customer是誰。
ShowCustomerDetails.set 用於設定界面顯示內容。
使用IApproveCustomerView定義接口可以有效地增加領域層的重用機會,至少在Web轉向Win的過程中可以有效地減少工作量。
但是注意一下由於在批准的流程中會批一個,然後顯示一個Customer信息,也就是首先是Default.aspx,然後是是Summy信息,再Default頁面。因此導航的工作也由Control執行。但是導航的地點就由NameVeiw類定義了。
Modle應該是ApproveCustomerViewPresenter,它與Veiw、Controller協作完成業務流程、數據顯示、數據存取的控制。注意下構造函數,接受一個View和一個Conntroller作爲參數。
Conntrol就是CustomersController。控制了業務的流程,如上一個Customer和下一個等。也就是被審批Customer的列表。如果有必要,Dao應該與這個類進行交互以完成持久化工作。