2011-07-30 54 views
1

我試圖找出完成我正在工作的MVVM應用程序的設置的最佳方法。現在架構有一些peices,但我覺得好像缺少了一些東西。我缺少什麼應用程序層?

基本上,我們有一個供應商的概念。每個提供者本質上都是通過某種方式將數據聚合到應用程序的途徑。目前有三家提供商,有可能獲得更多。我們如何從每個提供商獲取數據可能會有所不同,因此我將概述我們在下面所做的工作。

基本上過程流程如下。

User makes request -> 
    Request is sent to a function inside the "Model" -> 
    Function fowards request to a "Processor" which then sends the request to a specific or all "Provider" -> 
    Provider gets the data and returns the requests to the "Processor" -> 
    Processor formats the data so it can be consumed by the model -> 
    Model consumes the data and by some binding is displayed back to the user. 

我覺得模型內部的功能需要拆分成自己的層。通常情況下,我會認爲工廠模式適合,但是,我不認爲這是一種有益的模式。

然後,我雖然瞭解如何使用存儲庫模式,然而,再次,我不認爲會制定出我想要的東西,因爲它的主要優點是ORM類型的數據訪問。然而,使用Repository模式的概念看起來很不錯,因爲調用功能的一個地方會很好。

所以,他這樣說,還有什麼應該怎麼做。是具有模型內部功能本身填充好事還是壞事(這聽起來很奇怪,我)?

謝謝!

回答

0

我建議你開始喜歡Galasoft MVVMLight

花費幾個小時來研究這種架構會爲你帶來很多的答案,並告訴您與MVVM模式等一些常見的問題簡單的現有 MVVM框架作爲事件到命令 - 如何調用一個MVVM命令直通點擊一個按鈕

順便說一句模式應該是持久的不可知論者,你的思維正確的使用存儲庫的

+0

我們沒有問題,指揮若定,或任何MVVM元素。實際上,我們對MVVM的實現感到非常滿意。這是我們試圖消化的「超越MVVM」。 – John

+0

確定這裏我做了什麼:包含的ViewModels的初始化和調用存儲庫的方法 - 和/或網絡服務,我的模型「已知」一無所知底層。希望有所幫助。 – mmorel

+0

是的,我認爲這就是我要做的。我發現了一篇關於Repository模式的優秀文章,這正是我認爲缺少的。 http://www.primaryobjects.com/CMS/Article108.aspx可能是我長時間閱讀過的最好的文章之一。 – John