2012-04-09 26 views
0

我正在閱讀我認爲關於使用Java的模型 - 視圖 - 控制器(MVC)的一篇開創性文章(許多人在討論MVC時已經提到過)。保持控制器在視圖或使用監聽器的參考

http://www.oracle.com/technetwork/articles/javase/mvc-136693.html

基本上,它提出了一個改良的MVC流,與所述模型將通知發送給控制器(未視圖,如以傳統方式)。然後控制器將通知傳遞給View以獲取界面更新,或者將用戶交互的命令進行解釋併發送回模型。

我有一個關於控制器和視圖協同工作的問題。在本文中,作者在兩個視圖中都保留了對Controller的引用,並在這些視圖中直接調用了Controller的方法。我想知道它背後的理由。爲什麼他沒有在Controller中實現一些ActionListeners,並讓Views中的交互部件向這些監聽器發送信號?

感謝您的幫助。

回答

1

這是一個耦合問題。

如果您的視圖有對其控制器的引用,它將耦合到控制器。如果你不希望你的視圖使用不同的控制器,你會這樣做。 通過直接訪問,可以更簡單地遵循各種代碼路徑。

如果您實施動作監聽器模式,則將視圖和控制器解耦。視圖和控制器可以獨立存在,並且您可能會爲同一視圖使用不同的控制器。

相關問題