概念理解1:面向?qū)ο?面向接口

面向?qū)ο?/h1>

把一組數(shù)據(jù)結(jié)構(gòu)合和處理它們的方法組成對象(object)巷燥,把相同行為的對象歸納為倔撞,通過類的封裝隱藏內(nèi)部細節(jié)寸士,通過繼承實現(xiàn)類的特化,通過多態(tài)實現(xiàn)基于對象類型的動態(tài)分派牵祟。

繼承和組合

繼承(Inheritance)是一種聯(lián)結(jié)類與類的層次模型倍靡。指的是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類课舍、父接口)的功能塌西,并可以增加它自己的新功能的能力,繼承是類與類或者接口與接口之間最常見的關(guān)系筝尾;繼承是一種 is-a 關(guān)系捡需。
組合(Composition)體現(xiàn)的是整體與部分、擁有的關(guān)系筹淫,即 has-a 的關(guān)系站辉。

在繼承 結(jié)構(gòu)中,父類的內(nèi)部細節(jié)對于子類是可見的损姜。所以我們通常也可以說通過繼承的代碼復用是一種白盒式代碼復用 饰剥。(如果基類的實現(xiàn)發(fā)生改變,那么派生類的實現(xiàn)也將隨之改變摧阅。這樣就導致了子類行為的不可預知性)
組合 是通過對現(xiàn)有的對象進行拼裝(組合)產(chǎn)生新的汰蓉、更復雜的功能。因為在對象之間棒卷,各自的內(nèi)部細節(jié)是不可見的顾孽,所以我們也說這種方式的代碼復用是 黑盒式代碼復用 。
繼承 若厚,在寫代碼的時候就要指名具體繼承哪個類蜒什,所以霎冯,在編譯期就確定了關(guān)系。(從基類繼承來的實現(xiàn)是無法在運行期動態(tài)改變的关串,因此降低了應用的靈活性)
組合晋修,在寫代碼的時候可以采用面向接口編程墓卦。所以落剪,類的組合關(guān)系一般在運行期確定呢堰。

依賴倒置 控制反轉(zhuǎn) 依賴注入 面向接口編程

目標:實現(xiàn)高內(nèi)聚低耦合


依賴:一個對象鞋拟,往往需要跟其他對象打交道贺纲,既包括獲知其他對象的狀態(tài)来颤,也包括仰賴其他對象的行為,而一旦這樣的事情發(fā)生時滑黔,我們便稱該對象依賴于另一對象。
依賴倒置: 解耦和最重要的原則就是依賴倒置原則汛兜,高層模塊不應該依賴底層模塊,他們都應該依賴抽象(程序里的抽象就是接口)漏策。抽象不應該依賴于細節(jié)(具體實現(xiàn)),細節(jié)應該依賴于抽象褂乍。
控制反轉(zhuǎn): 控制反轉(zhuǎn)跟依賴倒置是如出一轍的兩個概念,當存在依賴倒置的時候往往也存在著控制反轉(zhuǎn)〔阒澹控制反轉(zhuǎn)跟依賴倒置都是一種編程思想,依賴倒置著眼于調(diào)用的形式,而控制反轉(zhuǎn)則著眼于程序流程的控制權(quán)。
依賴注入:依賴注入與依賴倒置砸捏、控制反轉(zhuǎn)的關(guān)系仍舊是一本萬殊。依賴注入,就其廣義而言,即是通過“注入”的方式袜爪,來獲得依賴,通常用于框架開發(fā)。
面向接口編程:無論是依賴倒置、控制反轉(zhuǎn)映屋、還是依賴注入同蜻,都已經(jīng)蘊含著“面向接口編程”的思想棚点。面向接口,就意味著面向抽象湾蔓。
“面向?qū)ο蟆迸c“面向接口”并非兩種不同的方法學瘫析,“面向接口”其實是“面向?qū)ο蟆钡膬?nèi)在要求,是其一部分內(nèi)涵的集中表述默责。我們對于理想軟件的期待常被概括為“高內(nèi)聚贬循,低耦合”,這也是整個現(xiàn)代軟件開發(fā)方法學所追求的目標桃序。面向?qū)ο蠓椒▽W作為現(xiàn)代軟件開發(fā)方法學的代表杖虾,本身就蘊含著“高內(nèi)聚,低耦合”的思想精髓葡缰,從這個意義上來說亏掀,“面向?qū)ο蟆边@個表述更加側(cè)重于“高內(nèi)聚”,“面向接口”的表述則更加側(cè)重于“低耦合”泛释。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滤愕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子怜校,更是在濱河造成了極大的恐慌间影,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茄茁,死亡現(xiàn)場離奇詭異魂贬,居然都是意外死亡,警方通過查閱死者的電腦和手機裙顽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門付燥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人愈犹,你說我怎么就攤上這事键科∥懦螅” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵勋颖,是天一觀的道長嗦嗡。 經(jīng)常有香客問我,道長饭玲,這世上最難降的妖魔是什么侥祭? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮茄厘,結(jié)果婚禮上矮冬,老公的妹妹穿的比我還像新娘。我一直安慰自己次哈,他們只是感情好欢伏,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著亿乳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪径筏。 梳的紋絲不亂的頭發(fā)上葛假,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機與錄音滋恬,去河邊找鬼聊训。 笑死,一個胖子當著我的面吹牛恢氯,可吹牛的內(nèi)容都是我干的带斑。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼勋拟,長吁一口氣:“原來是場噩夢啊……” “哼勋磕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起敢靡,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤挂滓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后啸胧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赶站,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年纺念,在試婚紗的時候發(fā)現(xiàn)自己被綠了贝椿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡陷谱,死狀恐怖烙博,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤习勤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布踪栋,位于F島的核電站,受9級特大地震影響图毕,放射性物質(zhì)發(fā)生泄漏夷都。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一予颤、第九天 我趴在偏房一處隱蔽的房頂上張望囤官。 院中可真熱鬧,春花似錦蛤虐、人聲如沸党饮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刑顺。三九已至,卻和暖如春饲常,著一層夾襖步出監(jiān)牢的瞬間蹲堂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工贝淤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留柒竞,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓播聪,卻偏偏與公主長得像朽基,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子离陶,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

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

  • 1. Java基礎部分 基礎部分的順序:基本語法稼虎,類相關(guān)的語法,內(nèi)部類的語法招刨,繼承相關(guān)的語法渡蜻,異常的語法,線程的語...
    子非魚_t_閱讀 31,587評論 18 399
  • 單一職責原則 (SRP) 全稱 SRP , Single Responsibility Principle 單一職...
    米莉_L閱讀 1,760評論 2 5
  • 面向?qū)ο笾饕槍γ嫦蜻^程计济。 面向過程的基本單元是函數(shù)茸苇。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,046評論 0 4
  • 設計原則就是在設計模式背后更為深層的、更具有普遍性的沦寂、共同的思想原則学密,是提高軟件系統(tǒng)的可維護性和可復用性的指導原則...
    蘇先生Tongson閱讀 1,148評論 0 0
  • 是主宰自己的命運。 男女溝通和辯論賽不同传藏,更不是“零和游戲”腻暮,非贏即輸彤守,而是要尋求協(xié)調(diào),實現(xiàn)雙贏哭靖。 瞎太太配上聾先...
    ZDrncan閱讀 306評論 0 0