換個角度理解之銀彈

《換個角度理解之設計模式》的草稿已經(jīng)放了一個多月了惋增,始終感覺缺少點什么芽突。最近因為工作需要在讀Shiro,Thymeleaf源碼脊阴,而在閱讀過程中時不時地會回想起還在做.NET的時候看過的 《程序員的自我修養(yǎng)—鏈接天通、裝載與庫》一書的這樣一句話——“軟件開發(fā)領域的銀彈——引入中間層”环葵。

說句題外話采呐,這本書當初依然是聽取了很多人的推薦茴厉。但買回來之后才發(fā)現(xiàn)是講C艸的旅掂。得益于當時的工資低但工作輕松赏胚,所以還是抽空看了一些。

1. 來源

下面這張圖是我剛剛專門從網(wǎng)上截取來的商虐。

《程序員的自我修養(yǎng)—鏈接觉阅、裝載與庫》P8

2. 解讀

我還是從兩個核心概念出發(fā)嘗試闡述下對這句話的理解崖疤。

2.1 推遲作決定的時機

對上面這句話的理解最直接的當然就是推遲作決定的時機。中間層的引入最明顯的就是再次將必須做出決定的時機后延典勇。時機的后延也就意味著我們?yōu)閼獙ψ儎恿舫隽烁嗟目臻g劫哼,系統(tǒng)也因此變得更加牢固。

但是請記住割笙,這種方式并不是完美無瑕的权烧。引入中間層的一大弊端就是增加了理解上的難度,這也是考驗架構(gòu)師的一個重要指標——哪些才是必要的中間層伤溉?

本人曾經(jīng)總結(jié)過這樣一句話: “真正做出決定的時間點和假裝做出決定的時間點之間的間隔越大般码,系統(tǒng)將越靈活,越牢固乱顾。大部分系統(tǒng)不穩(wěn)定性的重要原因之一正是作決定的時機太早板祝,導致之后作決定時被之前作下的決定所束縛,進而處處受制”走净。

2.2 知道自己不該知道什么

中間層引入之后券时,對于中間層之上的調(diào)用者而言,它就不應該去關心中間層之下的相關細節(jié)温技,它只需要遵守中間層的契約革为,來獲取自己想要的結(jié)果。

看了上面這段語言舵鳞,是否感覺這個中間層的解釋很像接口震檩。沒錯,接口就是中間層的一種形式蜓堕。

所以在你引入了中間層之后抛虏,

  1. 當你處在中間層之上時,一定要謹記自己該知道的套才,以及不該知道的迂猴。尤其是后者,你作出的假設越少背伴,系統(tǒng)的靈活性越大沸毁。
  2. 而當你位于中間層之下時,而是謹記不要去關注中間層之外的其他問題傻寂。這也符合很多前輩所教育我們的“不要對軟件的其它部分做出任何假設”息尺,"編寫羞澀的代碼"。

3. 總結(jié)

雖然是做.NET的時候就看到了這個言論疾掰,但真正有所感悟的則是在轉(zhuǎn)入Java搂誉,看了這么多的源碼之后。

回頭想想曾經(jīng)看過的那些優(yōu)秀源碼静檬,對于它們設計中的精密之處炭懊,彼此之間似乎越來越像了并级!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市侮腹,隨后出現(xiàn)的幾起案子嘲碧,更是在濱河造成了極大的恐慌,老刑警劉巖凯旋,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呀潭,死亡現(xiàn)場離奇詭異,居然都是意外死亡至非,警方通過查閱死者的電腦和手機钠署,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荒椭,“玉大人谐鼎,你說我怎么就攤上這事∪せ荩” “怎么了狸棍?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長味悄。 經(jīng)常有香客問我草戈,道長,這世上最難降的妖魔是什么侍瑟? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任唐片,我火速辦了婚禮,結(jié)果婚禮上涨颜,老公的妹妹穿的比我還像新娘费韭。我一直安慰自己,他們只是感情好庭瑰,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布星持。 她就那樣靜靜地躺著,像睡著了一般弹灭。 火紅的嫁衣襯著肌膚如雪督暂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天穷吮,我揣著相機與錄音逻翁,去河邊找鬼。 笑死,一個胖子當著我的面吹牛肪凛,可吹牛的內(nèi)容都是我干的堰汉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼翘鸭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了就乓?” 一聲冷哼從身側(cè)響起汉匙,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤生蚁,失蹤者是張志新(化名)和其女友劉穎噩翠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邦投,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡伤锚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了志衣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屯援。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖念脯,靈堂內(nèi)的尸體忽然破棺而出狞洋,到底是詐尸還是另有隱情,我是刑警寧澤绿店,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布吉懊,位于F島的核電站,受9級特大地震影響惯吕,放射性物質(zhì)發(fā)生泄漏惕它。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一废登、第九天 我趴在偏房一處隱蔽的房頂上張望淹魄。 院中可真熱鬧,春花似錦堡距、人聲如沸甲锡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缤沦。三九已至,卻和暖如春易稠,著一層夾襖步出監(jiān)牢的瞬間缸废,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留企量,地道東北人测萎。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像届巩,于是被迫代替她去往敵國和親硅瞧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,167評論 25 707
  • 干貨分享:用運營思維樹立個人品牌 第一彈 不用800萬的學區(qū)房恕汇,不用環(huán)游世界的毒雞湯腕唧,每個人都可以成為人生贏家。大...
    張老師Jess閱讀 531評論 15 7
  • 一根魚線掏空我心一顆顆將我穿引最后打一個結(jié)鎖住我心 原以為哪一個人愛不釋手便是我的主人才明了我不過一串佛物敬仰之又...
    靜止空間閱讀 147評論 0 2
  • 坐在回家的637路公交車上瘾英,我開始感到疲倦枣接。 今天不是周末,不是周一方咆,只是在這之間的月腋,某個普通的日子。 早上離開家...
    陸不換閱讀 923評論 1 2
  • 今天下午瓣赂,瀏覽了幾所同類高校的科研網(wǎng)榆骚,頗有收獲。我們在對外宣傳這部分煌集,做得不夠妓肢。 一、網(wǎng)頁要分類清晰苫纤,亮點突出有的...
    容玲閱讀 156評論 0 1