我正在學習「練習」中的MVC模式,這意味着我正試圖掌握如何在任何給定的Java應用程序中實現它。我剛剛通過另一個question得到了一點智慧,我跟進了這裏。可以讓控制器在應用MVC模式時繼承視圖嗎?
MVC模式的本質是模型不應該知道視圖或控制器。但是,控制器和視圖都必須知道控制器很可能需要更新視圖,並且視圖需要將用戶操作發送給控制器。我知道一個人通常使用策略模式實現控制器,這意味着控制器是視圖的行爲。無論人們如何看待它,視圖和控制器都是相互交織在一起的。
現在,我知道一個人應該贊成組合而不是繼承。然而,在控制器繼承視圖的情況下創建一個設計是否有意義。我主要考慮不必在視圖上編寫大量的訪問器和增變器方法,而是使用受保護關鍵字定義所有組件,以便子類可以訪問它們。
有人可能會認爲當用戶輸入發生時視圖應該能夠通知控制器。我的想法是讓控制器中的每個按鈕都有相應的操作。然後,它只是一個註冊正確的操作(在控制器,這是子類)與相應的按鈕(在視圖中)的問題。
我該如何模糊顧慮的分離?這仍然是MVC模式,還是我正朝着完全不同(甚至更糟糕)的方向前進?
所有的反饋是最歡迎的!
你的目標是什麼?你想開發自己的MVC框架嗎? – CoolBeans 2011-03-08 20:09:40
我的目標是瞭解如何在我的應用程序中利用MVC模式。從例子中我明白,理想的構成是將控制器設置爲視圖的「行爲」的方式。然而,它讓我感到震驚,讓任何一個控制器只是擴展視圖就很簡單。我承認它看起來很懶,但我認爲它是一種節省時間和代碼行的方法(不是說模式是什麼?)。畢竟,只要讓另一個繼承視圖,就可以很容易地改變「行爲」。 – sbrattla 2011-03-09 06:43:57