四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

引入間接隔離變化(三)

  間接在分層架構(gòu)中體現(xiàn)尤為明顯,引入層實(shí)則就是引入間接性。利用間接對變化進(jìn)行隔離,使得變化只能影響一層。例如在領(lǐng)域?qū)优c數(shù)據(jù)庫之間引入數(shù)據(jù)訪問層,就可以隔絕因?yàn)閿?shù)據(jù)庫發(fā)生的變化對領(lǐng)域帶來的影響。

  在分層架構(gòu)中,我們應(yīng)盡量保證在某一層中所有用到的組件都工作在同一個抽象層中,這意味著需要謹(jǐn)慎處理對象之間的協(xié)作,盡量避免跨層之間的調(diào)用。如果不同的層部署在不同的服務(wù)器,就會帶來不必要的消息處理,增加了網(wǎng)絡(luò)跳數(shù)與帶寬占用。拋開性能不談,跨層調(diào)用產(chǎn)生的依賴,可能破壞層的內(nèi)聚性。倘若必須依賴于底層,我們也應(yīng)該減少對底層的依賴點(diǎn)。要減少這種依賴,可以在同一層中提供一個間接接口,用于處理對底層的依賴關(guān)系,從而將變化集中于一處。

  對于模塊和組件中的對象協(xié)作,同樣遵循這一原則。假設(shè)系統(tǒng)定義了報表引擎組件,它需要調(diào)用數(shù)據(jù)引擎組件提供的服務(wù),驅(qū)動引擎執(zhí)行數(shù)據(jù)庫查詢,以獲得報表所必須的數(shù)據(jù)。一般采用的設(shè)計(jì)如下圖所示:image   這樣的設(shè)計(jì)充分體現(xiàn)了抽象的原則,保證了ReportEngine與DataEngine組件之間的松散耦合。在ReportEngine組件中,與報表相關(guān)的許多領(lǐng)域?qū)ο蠖夹枰{(diào)用DataEngineService,以獲得報表所需要的數(shù)據(jù)。然而,我在設(shè)計(jì)時并未滿足于DataEngineService接口引入的間接,而是在ReportEngine組件中再度引入了一層間接,我將其定義為DataEngineRepository,它屬于報表引擎的領(lǐng)域范圍:

public interface DataEngineRepository {
public List<Map<String, Object>> find(
CommandInfoPreparing commandInfoPreparing);
}

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

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

主站蜘蛛池模板: 乔治克鲁尼身高| 5一6岁脑筋急转弯大全及答案| 女生打屁股视频| 谭老板 电影| 二年级上学期口算题| 八哥疯玩院| 美女被吃| 老版《桃太郎》| 哥谭演员表| 俗世乐土| 徐若晗个人简历| 巴霍巴利王2国语版免费中文版| 寇世勋个人资料简介| 鬼吹灯之精绝古城演员表| 欧美一级大片在线观看| 小淘气尼古拉| 王若涵| 侠客行演员表| 百字明咒标准读诵慢念| 电子元器件基础知识| 龙凤店| 希比·布拉奇克| 暴风雨的儿女| 尸家重地演员表| 我的世界,视频| 少年派1主演名单| 大浴女电视剧所有演员表| 抖音网页| 有完没完电影| 欢颜电视剧40集免费观看全集高清| 崔在焕| 扭曲的欲望| 欲望旅馆| 黄梅戏龙女全剧播放| 电影交换| 喜欢小红帽的原因怎么写| 梦想建筑师泰国百合剧| 十大名茶排名表| 战狼7| 往肚子里打气撑大肚子极限视频| 城市风云儿|