換個(gè)角度理解之OOP三原則

繼續(xù)我們的系列。

三原則的內(nèi)容和基本內(nèi)容就不談了,說(shuō)出來(lái)都得被罵矯情泽篮。讓我們直接進(jìn)入正題。

1. 封裝

封裝柑船,也就是黑盒了帽撑。這里我們回顧下核心準(zhǔn)則就明了了——“相比較應(yīng)該知道自己該知道什么,清楚地認(rèn)識(shí)到自己不該知道什么甚至更重要鞍时。因?yàn)榍罢咭话闳硕蓟蚨嗷蛏僦酪徊糠挚骼笳咝枰母嗍亲孕拧6液雎缘羝渌?xì)節(jié)才能讓我們集中全部精力解決我們真正關(guān)心的問題”逆巍。

封裝的含義上面這段話基本解釋得很清楚了:

  1. 從使用者的角度來(lái)說(shuō)就是我對(duì)這里面的實(shí)現(xiàn)細(xì)節(jié)不關(guān)心专筷,你直接告訴我你要些啥才能給我所想要的結(jié)果。
  2. 而從服務(wù)者的角度則是這里面的邏輯你就別關(guān)心了蒸苇,我會(huì)保證結(jié)果正確的磷蛹。而且搞不好以后我還會(huì)換種實(shí)現(xiàn)方式。

2. 繼承

最主要的職責(zé)就是避免重復(fù)了溪烤。類似《Clean Code》味咳,《程序員修煉之道——從小工到專家》等極其多的名著里都一再?gòu)?qiáng)調(diào)重復(fù)的危害。而《Clean Code》甚至直接斷言”軟件行業(yè)里的大部分改進(jìn)就是為了消除重復(fù)”檬嘀。

3. 多態(tài)

”同樣的行為作用于不同的個(gè)體產(chǎn)生不同的效果”槽驶。以上是生物學(xué)上對(duì)多態(tài)的定義。(當(dāng)初小白入行鸳兽,為了搞懂多態(tài)的定義掂铐,居然死磕著把定義背下來(lái)了。嗯,青春歲月全陨。)

關(guān)于這個(gè)OOP原則爆班,就涉及到另外一個(gè)核心原則——“推遲作出決定的時(shí)機(jī)”。這里我得引用下我之前一篇文章里的論點(diǎn)了:

  1. 很多時(shí)候我們不想要被此時(shí)的決定束縛住手腳辱姨,導(dǎo)致之后的工作因當(dāng)前的決定而步履維艱柿菩。但我們又必須作出某種決定以便讓接下來(lái)的工作得以進(jìn)行,于是我們可以假裝實(shí)現(xiàn)了這個(gè)功能(假裝已經(jīng)做出了這個(gè)決定)來(lái)讓工作得以繼續(xù); 待到真正需要這個(gè)功能時(shí)雨涛,才去實(shí)現(xiàn)它(真正地做出來(lái)決定)枢舶。使用這種方法可以讓我們的程序變得非常穩(wěn)固,能夠自如地應(yīng)對(duì)外界的變化替久。
  2. 上面的”假裝實(shí)現(xiàn)了這個(gè)功能”的另外一種說(shuō)法叫做“wishful thinking”凉泄。有興趣的讀者可以了解下,很有意思的蚯根『笾冢或者直接看本人底部的鏈接。而”假裝實(shí)現(xiàn)了這個(gè)功能”的一種實(shí)現(xiàn)方式就是聲明一個(gè)接口稼锅。
  3. 而建立接口的目的就是為了推遲作決定的時(shí)機(jī)。
    1. 定義接口就是假裝作出了這個(gè)決定僚纷。
    2. 而實(shí)現(xiàn)接口則是真正地作出這個(gè)決定矩距。
    3. 上面兩個(gè)行為是有時(shí)間差的。而且這個(gè)時(shí)間差越大怖竭,你的程序就越靈活锥债。
    4. 熟悉Java的同學(xué)應(yīng)該都知道多態(tài)屬于一種 動(dòng)態(tài)綁定 吧。所謂的動(dòng)態(tài)綁定不就是到真正需要的時(shí)候才去找實(shí)現(xiàn)者嗎痊臭?

4. 擴(kuò)展閱讀

  1. http://www.reibang.com/p/5a94c15a3278
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哮肚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子广匙,更是在濱河造成了極大的恐慌允趟,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸦致,死亡現(xiàn)場(chǎng)離奇詭異潮剪,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)分唾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門抗碰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人绽乔,你說(shuō)我怎么就攤上這事弧蝇。” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵看疗,是天一觀的道長(zhǎng)沙峻。 經(jīng)常有香客問我,道長(zhǎng)鹃觉,這世上最難降的妖魔是什么专酗? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮盗扇,結(jié)果婚禮上祷肯,老公的妹妹穿的比我還像新娘。我一直安慰自己疗隶,他們只是感情好佑笋,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斑鼻,像睡著了一般蒋纬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坚弱,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天蜀备,我揣著相機(jī)與錄音,去河邊找鬼荒叶。 笑死碾阁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的些楣。 我是一名探鬼主播脂凶,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼愁茁!你這毒婦竟也來(lái)了蚕钦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鹅很,失蹤者是張志新(化名)和其女友劉穎嘶居,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體促煮,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡食听,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了污茵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片樱报。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖泞当,靈堂內(nèi)的尸體忽然破棺而出迹蛤,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布盗飒,位于F島的核電站嚷量,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏逆趣。R本人自食惡果不足惜蝶溶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宣渗。 院中可真熱鬧抖所,春花似錦、人聲如沸痕囱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鞍恢。三九已至傻粘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帮掉,已是汗流浹背弦悉。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蟆炊,地道東北人稽莉。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像盅称,于是被迫代替她去往敵國(guó)和親肩祥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子后室,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345