一、MVC和三層架構 什麼是MVC? (1) MVC的全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,是一種軟體設計模式。 (2) Model:即模型。也就是JavaBean、domain、entity 封裝數據的模型: ...
一、MVC和三層架構
- 什麼是MVC?
(1) MVC的全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,是一種軟體設計模式。
(2) Model:即模型。也就是JavaBean、domain、entity
- 封裝數據的模型:實體
- 在java web中,把數據封裝到一個實體類的對象中,傳遞對象
- domain:實體類。也叫entity
a) 把屬性設置為私有的
b) 添加get、set方法
c) 必須要有預設的無參構造方法
d) 這個類必須是public公共的
(3) View:即視圖。
- 也是就JSP、html、css、JavaScript代碼。實現數據的展示
- 位置在WebContent文件夾下
(4) Controller:即控制器。也就是Servlet
- 接受用戶請求,調用模型處理請求,選擇視圖(jsp)顯示相應結果
- 什麼是三層架構?
(1) 表現層(UI):
a) 主要是指與用戶交互的界面。用於接收用戶輸入的數據和顯示處理後用戶需要的數據。
b) 前端代碼:view。用戶和用戶、界面的顯示。jsp、js、html、css
代碼位置:WebContent
c) 後臺代碼:control。用戶控制跳轉、調用業務邏輯層。
Servlet、SpringMVC、Struts2。
a) 包名:xxx.controller或xxx.servlet
(2) 業務邏輯層(Service層或BLL)
- UI層和DAO層之間的橋梁。實現業務邏輯。業務邏輯具體包含:驗證、計算、業務規則等等
- 包名:xxx.service
- 介面名:IXXXService
- 實現類名:XXXServiceImpl
(3) 數據訪問層(Dao層)
- 與資料庫打交道。主要實現對數據的增、刪、改、查。將存儲在資料庫中的數據提交給業務層,同時將業務層處理的數據保存到資料庫
- 包名:xxx.dao
- 介面名:IXXXDao
- 實現類名:XXXDaoImpl
(4) 三層之間的關聯
- 生活中的三層架構
-
服務員:只管接待客人;
廚師:只管做客人點的菜;
採購員:只管按客人點菜的要求採購食材;
他們各負其職,服務員不用瞭解廚師如何做菜,不用瞭解採購員如何採購食材;廚師不用知道服務員接待了哪位客人,不用知道採購員如何採購食材;同樣,採購員不用知道服務員接待了哪位客人,不用知道廚師如何做菜。
- 為什麼要使用三層架構?
(1) 使用三層架構的目的:解耦!!!遵守的原則:高內聚、低耦合
(2) 同樣拿上面飯店的例子來講:
(3) 服務員(UI層)請假——另找服務員;廚師(BLL層)辭職——招聘另一個廚師;採購員(DAL)辭職——招聘另一個採購員;
顧客反映:
1、你們店服務態度不好——服務員的問題。開除服務員;
2、你們店菜里有蟲子——廚師的問題。換廚師;
任何一層發生變化都不會影響到另外一層!!!
- 三層架構的表現形式?