經過一番思想/閱讀(特別是following系列),我開始接受實現MVC以下一般規則:MVC Android上:型號變化和動畫
型號 - 一套簡單的虛擬價值對象,負責保持狀態。模型類別爲Observable並通知觀察者 - 即視圖何時更改。模型代碼可以是android不可知的。
查看 - 類能夠保持/更新其視覺狀態 - 基於
android.view.View/ViewGroup
家庭 - 通過繼承或組成。 查看類別爲型號-意識到,他們收到更新型號的狀態並相應地重新繪製。所有用戶輸入的聽音代碼都被授權給控制器。控制器 - 活動/片段中的所有用戶輸入處理代碼。控制器更新模型,這反過來將觸發訂閱查看更新。
聽起來很簡單,在大多數情況下肯定是可行的。
現在,考慮例如:
控制器/活動跟蹤2 模型對象model1
和model2
和基於某些應用邏輯改變它們。
查看獨立地按照上述設計從對象model1
和model2
接收更新。
現在,假設的查看希望基於相互轉換都model1
的和model2
對於它需要在同一時間知道兩個對象的變化,或者作爲一個單一的事件,顯示動畫。
什麼會推薦這樣做,保持mvc設計上面的地方?
我想過的選項:
有一個 「SmartModel的」,它封裝了
model1
和model2
,使相互的改變/轉移,並告知查看。我不喜歡這種方法,因爲型號變得不是真正的「啞」狀態表示,但也拖動了一些應用程序邏輯控制器。有控制器告知它確實在兩個
model1
和model2
的變化查看。在這種情況下,無論MODEL1也不MODEL2需要執行通知查看能力,即有型號之間沒有聯繫 - >查看了。可能有更好的選擇/我錯過了一些東西。
任何有見地的建議將不勝感激。