日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

mvc架構(gòu)模式的原理 MVC架構(gòu)系統(tǒng)設(shè)計(jì)方法

說起MVC,感覺大家都能嘮個(gè)兩塊錢的 。今天呢,我們也來簡單的聊一聊,并以Java Web開發(fā)為例,簡單的講解項(xiàng)目應(yīng)當(dāng)如何分層 。
MVC之前在Web開發(fā)早期,當(dāng)Sun公司推出了JSP技術(shù)后,在當(dāng)時(shí)是極大的震撼了整個(gè)行業(yè),包括微軟后面推出的ASP也是針對JSP推出的反制手段 。在早期使用JSP開發(fā)的Web應(yīng)用中,JSP因?yàn)槠鋸?qiáng)大的特性,以Java語言寫的代碼塊作為腳本,因此一個(gè)JSP文件是一個(gè)獨(dú)立的、能自主完成所有任務(wù)的模塊(其他的動(dòng)態(tài)網(wǎng)站技術(shù)比如ASP、PHP也是如此),它可以負(fù)責(zé)處理業(yè)務(wù)邏輯、控制頁面跳轉(zhuǎn)和向用戶展示頁面等 。

mvc架構(gòu)模式的原理 MVC架構(gòu)系統(tǒng)設(shè)計(jì)方法


在上圖這個(gè)模式中,”全棧”開發(fā)似乎變得簡單了許多,只需要在JSP中開發(fā)就可以了 。但這么做的一個(gè)明顯的弊端,就是JSP頁面中的功能過于繁雜、耦合性太高,數(shù)據(jù)、業(yè)務(wù)邏輯、流程控制全都混雜在一起,使得程序后續(xù)難以維護(hù)和修改 。
?為了解決上述問題,SUN公司提供了一種JSP開發(fā)的架構(gòu)模型,我們可以稱之為JSP Model1 。在這個(gè)模型中,采用JSP+JavaBean(將萬物抽象成對象,提供一些屬性和對應(yīng)的getter、setter方法)技術(shù),將頁面的顯示和業(yè)務(wù)邏輯分開 。

mvc架構(gòu)模式的原理 MVC架構(gòu)系統(tǒng)設(shè)計(jì)方法


?從上圖中,我們可以看到,JSP Model1將封裝數(shù)據(jù)和處理數(shù)據(jù)的業(yè)務(wù)邏輯交給了JavaBean組件,JSP只負(fù)責(zé)接收用戶的請求和調(diào)用JavaBean組件來響應(yīng)用戶的請求 。這種設(shè)計(jì)在一定程度上實(shí)現(xiàn)了數(shù)據(jù)、業(yè)務(wù)邏輯、頁面展示的分離,在一定程度上實(shí)現(xiàn)了程序開發(fā)的模塊化(分層),降低了程序間的耦合性,讓代碼的維護(hù)、修改成本有效的降低 。
MVC設(shè)計(jì)模式?MVC設(shè)計(jì)是由[Xerox PARC](
https://baike.baidu.com/item/Xerox PARC)(施樂帕克,研究中心)在20世紀(jì)80年代為編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,提供了一種按照功能模塊劃分的指導(dǎo)思想 。
?MVC設(shè)計(jì)模式將應(yīng)用程序分為三個(gè)核心模塊:模型(Model)、視圖(View)、控制器(Controller) 。每個(gè)模塊的作用如下所示:
  • 模型(Model):負(fù)責(zé)管理應(yīng)用程序的業(yè)務(wù)數(shù)據(jù)、定義訪問控制以及修改這些數(shù)據(jù)的方法 。
  • 視圖(View):負(fù)責(zé)與用戶進(jìn)行交互,它從模型中獲取數(shù)據(jù)向用戶展示,同時(shí)也能將用戶請求傳遞給控制器處理 。
  • 控制器(Controller):負(fù)責(zé)應(yīng)用程序中處理用戶交互的部分,可以從視圖中取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù) 。

mvc架構(gòu)模式的原理 MVC架構(gòu)系統(tǒng)設(shè)計(jì)方法


?MVC模式廣泛的應(yīng)用的于Web開發(fā)中,我們以Java Web開發(fā)來簡單說明應(yīng)用程序應(yīng)該怎么樣劃分模塊:Controller層為Servlet,View層為JSP,Model層為JavaBean 。圖中的步驟1、2、3、4是用戶進(jìn)行請求時(shí)的處理流程 。

mvc架構(gòu)模式的原理 MVC架構(gòu)系統(tǒng)設(shè)計(jì)方法


三層架構(gòu)?三層架構(gòu)(3-tier architecture)通常是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表示層(User show layer, USL)、業(yè)務(wù)邏輯層(Business Logic Layer, BLL)、數(shù)據(jù)訪問層(Data access layer, DAL) 。其中每層的作用如下:
表示層:又稱表現(xiàn)層UI,位于三層構(gòu)架的最上層,與用戶直接接觸,主要是用戶瀏覽的頁面,其主要功能是實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)的傳入與輸出,在此過程中不需要借助邏輯判斷操作就可以將數(shù)據(jù)傳送到BLL系統(tǒng)中進(jìn)行數(shù)據(jù)處理,處理后會(huì)將處理結(jié)果反饋到表示層中;業(yè)務(wù)邏輯層:中間層,對具體問題進(jìn)行邏輯判斷與執(zhí)行操作,當(dāng)接收到表現(xiàn)層UI的用戶指令后,會(huì)連接數(shù)據(jù)訪問層,將數(shù)據(jù)庫訪問層的增刪改查進(jìn)行組裝,并將處理結(jié)果返回給表示層;數(shù)據(jù)庫訪問層:主要用于操作數(shù)據(jù)庫中的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的增刪改查操作,并將處理結(jié)果返回給業(yè)務(wù)邏輯層 。?三層架構(gòu)相比較于MVC是更宏觀的解決方案,MVC相當(dāng)于對三層架構(gòu)中的表示層 。不管這兩個(gè)的哪一種,都是對應(yīng)用程序進(jìn)行分層,其目的就是實(shí)現(xiàn)高內(nèi)聚、低耦合的目標(biāo),將程序分成不同的模塊,讓開發(fā)和維護(hù)變得更清晰明了 。

推薦閱讀