中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

鍵值對在架構(gòu)設(shè)計里的應(yīng)用

  1. 談?wù)勎覍Τ绦虻睦斫?/strong>

  作為程序員你對程序是如何理解的?寫這篇文章的時候,我認真思考了下,發(fā)現(xiàn)我對程序的理解不是和教科書一樣的,我每次聽到程序二字我想到的只有兩個東西:代碼和數(shù)據(jù),而每次寫程序的時候也就是寫代碼操作數(shù)據(jù)的過程。

  做程序開發(fā)和做菜很像,數(shù)據(jù)就是食材,代碼就是廚藝,做出的軟件就是一道菜了,至于這個菜好不好吃,到底是看食材還是看廚藝了?呵呵,當我拋出這個問題的時候,我的第一反應(yīng)是菜不好吃當然是手藝不好了,不知道其他童鞋是不是這么想的。認真想下,一道好菜一般都是二者必須兼?zhèn)洌斎徊慌懦骋豁椡怀鲆部梢赃_到同樣的效果,但這種情況畢竟不是大眾化,而是屬于少數(shù)精英的,做軟件也是如此,代碼與數(shù)據(jù)是不可偏廢的。這里我要提的是數(shù)據(jù)。

  根據(jù)我的經(jīng)驗和知識(分類標準我一直想不太好,所以說是自己的經(jīng)驗和知識),我把數(shù)據(jù)分為兩類:落地數(shù)據(jù)和不落地數(shù)據(jù)。

  1. 落地數(shù)據(jù):就是被持久化的數(shù)據(jù),這種數(shù)據(jù)一般放在硬盤或是其他的持久化存儲設(shè)備里,例如:圖片、系統(tǒng)日志、在頁面上顯示的數(shù)據(jù)以及保存在關(guān)系數(shù)據(jù)庫里的數(shù)據(jù)等等,落地數(shù)據(jù)一定會有一個固定的載體,他們不會瞬時消失的。
  2. 不落地數(shù)據(jù):一般指存儲在內(nèi)存或者是網(wǎng)絡(luò)傳輸里的數(shù)據(jù),這些數(shù)據(jù)是瞬時,使用完畢就會消失,例如:我們在瀏覽器發(fā)送給服務(wù)器的請求;從數(shù)據(jù)庫讀取出來的一直到頁面展示前的數(shù)據(jù)等等。

  寫過程序的人都知道,程序里對這兩種類型數(shù)據(jù)操作是有很大的不同的。

  2. 由Java EE的MVC設(shè)計模式談起

  Java一個很重要的貢獻就是推出了MVC設(shè)計模式,MVC其實應(yīng)該按VCM順序讀最好。V及View,主要是前臺展示的頁面;C及Controller,控制層主要作用是接受前臺頁面數(shù)據(jù),根據(jù)數(shù)據(jù)的不同調(diào)用后臺不同的業(yè)務(wù)模型,同時業(yè)務(wù)模型處理好的數(shù)據(jù)也要發(fā)送到Controller,Controller再分配給相應(yīng)的前臺頁面;M及Model,模型層專門負責操作業(yè)務(wù)模型。下圖很好的表達了MVC的理念:

  隨著MVC模式的發(fā)展,現(xiàn)在流行的架構(gòu):View(視圖層)+ Controller(也叫Action,控制層)+ Service(業(yè)務(wù)模型層)+ DAO(數(shù)據(jù)訪問對象層)+ 數(shù)據(jù)庫的多層結(jié)構(gòu),如下圖:

  紅線是用戶的請求;藍線是服務(wù)器應(yīng)用戶的請求。紅色和藍線也代表各層數(shù)據(jù)傳輸?shù)牧飨颉?/p>

  不管是傳統(tǒng)的MVC模式還是現(xiàn)在流行的多層架構(gòu),各個邏輯層傳輸?shù)臄?shù)據(jù)都是不落地數(shù)據(jù)。

  在Java項目里,一般我們都是傳輸JavaBean,而這些JavaBean都是程序員根據(jù)實際業(yè)務(wù)需求自己定義的,例如下面一個典型的JavaBean:

public class User {    
private String name = "";
private String sex = "";
private String age = "";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}

it知識庫鍵值對在架構(gòu)設(shè)計里的應(yīng)用,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 黑人粗黑大躁护士 | 一区二区三区久久 | 亚洲欧美一区二区三区视频 | 成人av一区二区三区 | 九九热精品在线 | www.久草.com | 精品国产免费一区二区三区五区 | 网站一区二区三区 | 欧美性网 | 成人在线观看网站 | 一区二区三区四区在线视频 | 久久久国产一区二区三区 | 激情视频中文字幕 | 日本一区二区电影 | 91久久国产综合久久 | 久久久久国产 | 日韩在线欧美 | 国产黄色大片网站 | 日本亚洲精品 | 成年人在线视频 | 国产一区影院 | 国产在线一区二区三区 | 久久99精品久久久久久国产越南 | 亚洲成人精选 | 欧美日韩免费视频 | 中文字幕亚洲无线 | 国产精品久久久久久久一区探花 | 久久国产精99精产国高潮 | 久久久久久久久久久久久九 | 国产黄色精品在线观看 | 精品国产免费人成在线观看 | 成人av电影在线 | 亚洲午夜视频在线观看 | 韩日精品一区 | 黄网站在线观看 | 欧美在线视频一区二区 | 亚洲综合五月天婷婷 | 九九在线精品视频 | 日韩视频区 | 九九热这里 | 午夜影院在线免费观看视频 |