1. 程式人生 > >通過JavaWeb談談MVC設計模式

通過JavaWeb談談MVC設計模式

從.net的學習開始,看過一點有關MVC的概念,但是在學校的實驗室裡沒有接觸過類似的專案,只是大概知道是一種設計模式,所以現在在學習Java Web的過程中,剛好把過去沒有接觸過的知識重新拿來好好學習一下,菜鳥一枚,有講的不對的地方,還望大家輕噴。

MVC是模型(Model)、檢視(View)、控制器(Controller)3個單詞的縮寫。那我們就先從MVC的這三個要素開始吧。

 1.模型(Model)

Model模型是指資料模型,是對客觀資料的抽象。簡單地說,這個模組負責對資料的處理。以MySQL為例,這個模組首先要實現連線資料庫,再根據指令對資料庫做出正確的操作。在Java中連線資料庫有很多的方法,如直接通過jdbc連線或者通過一些封裝好的工具類也是可以的。在此舉一個簡單的例子。

	public Book find(String id){             //根據書的ID查詢圖書
		try {
			QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource());
			String sql = "select * from book where id=?";
			return (Book)runner.query(sql, id, new BeanHandler(Book.class));
		} catch (SQLException e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}

這一小段程式碼主要的作用就是對資料庫中的資料進行操作,有一點Java和SQL基礎的應該都能大概看懂這段程式碼,我就不贅述這段程式碼的詳細處理過程了。就算看不懂也不要緊,大家只要知道,Model主要是由一個一個這樣的對資料進行處理的函式或者說是類組成的就行了。

2.檢視(View)

View檢視就是給使用者看的使用者介面,使用者不是程式設計師,他們不懂業務邏輯,更不會對資料庫進行直接操作,所以要給他們一個容易接受的頁面,讓他們能夠實現一些合理的操作。對程式設計師來說,要把使用者當做這個世上最調皮的人來看待,他們不會對我們程式設計師辛辛苦苦做的程式報半點敬畏之心,他們毫無耐心,不善等待,他們完全無視規定,輸入他們想輸入的任何資料,把程式搞得一團糟。因此,檢視的作用非常重要,他們要像最耐心的客服人員,善於溝通(使用者可以輕鬆地使用),細心(在使用者輸入不符規定的資料的時候善意提醒,而不是直接崩潰)。咱們在瀏覽器上直接可以看到的頁面就是檢視。

3.控制器(Controller)

Controller控制器是對程式進行控制的部分,上面的兩個要素view檢視和model模型不會發生直接的交流,他們之間的橋樑就是控制器。通常,在動態網頁中,控制器的作用往往是先獲取到需要的資料,把資料儲存好,跳轉到目標頁面之後再把資料取出來放在合適的位置。畫個圖簡單表示一下這個過程。

這個圖的簡單解釋是當前jsp頁面向控制器發出一個請求也就是request,控制器收到這個請求後通知模型處理資料,模型處理完資料後再跳轉到下一個目標頁面。

其實MVC模式也沒什麼特別的地方,就是將程式大概分成了三個不同的功能區域,每個區域分別負責特定的任務。在一般的面向物件的程式設計中,封裝性也非常重要的一個特性,而MVC模式說白了無非是將封裝性規範化了,固定為三個模組,在統一的標準規範下提高了專案的可讀性,有利於專案的後期修改和維護。