天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

引入間接隔離變化(一)

  David Wheeler有一句名言:“計(jì)算機(jī)科學(xué)中的大多數(shù)問題都可以通過增加一層間接性來解決。”間接代表著迂回。世間沒有哪一條道路是完全筆直的。蜿蜒曲折的道路并非出于美的靈感,不過是因?yàn)槲覀冃枰@開路途中的障礙罷了。

  我們在設(shè)計(jì)中遇到的最大障礙,無疑就是變化。若能御變化于實(shí)現(xiàn)之外,軟件開發(fā)就會變得美好。

  應(yīng)對變化的要訣是隔離。設(shè)計(jì)者需要界定對象的不變部分與可變部分,然后將可變部分隱藏起來,即使發(fā)生了變化,也不會影響到外部。這就是封裝的含義。正如地殼核心的變化如此的狂暴與迅捷,但對于地面上生活的人類而言,幾乎微不可察。然而,一旦地殼的變化沖出地表,就會釀成天大的災(zāi)難。變化對軟件系統(tǒng)造成的災(zāi)難,并不亞于地震或者火山。封裝為對象內(nèi)部的實(shí)現(xiàn)設(shè)定了一層隔離帶,將復(fù)雜變化的業(yè)務(wù)邏輯或者算法策略隱藏在對象之內(nèi)。只要保證對象的接口不發(fā)生變化,調(diào)用者與對象內(nèi)部的實(shí)現(xiàn)就可以單獨(dú)演化了。

  當(dāng)我們發(fā)現(xiàn)一個對象需要依賴另一個不穩(wěn)定的對象,同時,還需要執(zhí)行復(fù)雜的交互邏輯時,就可以考慮引入一個新的對象來封裝這些邏輯,從而解除二者之間的耦合,隔離變化。Spring MVC中的ModelAndView對象扮演的正是這一角色。根據(jù)MVC模式,控制器需要將模型對象所持有的數(shù)據(jù)以及數(shù)據(jù)的變化呈現(xiàn)到視圖中。它通過尋找正確的視圖對象,完成頁面的展現(xiàn)。控制器承擔(dān)了這一職責(zé),就意味它必須依賴于視圖對象。例如這樣的代碼:

public class CustomerController implements Controller {
@Override
public View handleRequest(
HttpServletRequst request,
HttpServletResponse response) throws Exception {
Map model
= new HashMap();
model.put(“customers”, getCustomerList());
return new InternalResourceView(”/WEB-INF/jsp/customerList.jsp”);
}
}

it知識庫引入間接隔離變化(一),轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 亚洲精品理论电影在线观看 | A片毛片免费视频在线看 | 牢记永久免费网址 | 男人天堂2018亚洲男人天堂 | 成熟YIN荡美妞A片视频麻豆 | 免费看大黄高清网站视频在线 | 久久re6热在线视频 久久er国产免费精品 | 99视频精品全部免费免费观 | 欧美高清69vivo | 亚洲欧美国产综合在线一区 | 冈本视频黄页正版 | 国产精品第八页 | 天天噜日日噜夜夜噜 | 男男免费看| 日本污ww视频网站 | 97视频在线观看免费播放 | 国产成人小视频在线观看 | 日日夜夜天天操 | 久久综合色一综合色88中文 | 欧美eee114| 亚洲精品第一页 | av天堂网站avtt2017 | av视频在线免播放观看 | 成人人猿泰山 | 日韩午夜影院 | 久久久久久免费观看 | 国产精品涩涩涩视频网站 | 97精品少妇偷拍蜜桃AV | 国产精品人妻无码久久久蜜桃臀 | 午夜伦伦电影理论片费看 | 亚洲日本欧美天堂在线 | 男女生爽爽爽视频免费观看 | 久久怡红院国产精品 | 亚洲乱亚洲乱妇13p 亚洲乱色视频在线观看 | 户外插BBBBB| 欧美一区二区激情视频 | 国产亚洲精品首页在线播放 | 国产色婷亚洲99精品AV | 亚洲国产高清视频在线观看 | 久久精品电影网 | 一区在线观看在线 |