2012-05-08 48 views
1

我正在使用通用圖形編輯器(GGE)的類圖,並在其中使用模型視圖控制器(MVC)模式。模式真的很棒,但有一件事讓我感到困惑。我創建了一個完整的Selection類,並將其綁定到MVC中的Model,但是當這種情況發生時,只有一個View(模型中的許多View)可以有一個主動選擇。如果我將Selection類與View相關聯,則會破壞模式的規則(視圖中的邏輯「未見」信息)。MVC模式中的模型和視圖之間的鏈接

我的問題是:有沒有一種有效的方法來鏈接視圖和模型之間的Selection類「中間某處」,以便模型包含所有邏輯信息,但所有視圖都可以有自己的選擇活動每時每刻?類圖是Java的,如果這意味着什麼的話。

我發現MVC模型視圖展示器(MVP)模式的派生,但我沒有看到它的任何幫助。我錯過了什麼嗎?

感謝您的耐心等待。 :D

+0

附加信息:我有一個關於將序列化添加到Select類的想法,以便每次切換視圖時,如果以前的視圖有選擇,它們將被導出並保存,並且每次切換到的視圖檢查是否有序列化的選擇。在退出程序時,序列化選擇的所有文件都將被刪除。但這似乎不是很有效,我會認爲我錯過了一個更好的方法。 –

回答

0

只要視圖中沒有邏輯,視圖就可以擁有狀態,特別是如果「視圖」類是一個MVC組件(例如Swing中的JTable)。 MVC和MVP都是關於爲模塊化,可測試性和可理解性分離不同類型的代碼。只要你符合這些標準,你就不需要遵循教條式的「規則」。

+0

感謝您的回答。我實際上會將Selection類移動到View中,並將SelectedElements集合放在那裏,因爲我沒有看到任何其他方式讓選擇有效。 –

相關問題