成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

生活中的OO智慧:大話面向對象五大原則

開發 開發工具
世間萬物,以俗眼觀紛紛各異,以道眼觀種種是常。面向對象思想不僅是編程的智慧,同樣也是人生的智慧。通過生活去領悟面向對象的智慧,以面向對象的智慧來指導生活。

一·單一職責原則(Single-Responsibility Principle)

定義:一個對象應該只包含單一的職責,并且該職責被完整地封裝在一個類中。

宿舍里并不能好好學習,自習還是得去圖書館。這是一條顛撲不破的真理!被無數學子千百次的實踐所證明!我就想不通了,宿舍里有桌有椅,能上床小睡,能下床讀書,餓了吃外賣,渴了喝奶奶,自個習,憑啥就不行?后來,由于我刻苦地學習,增漲了科學文化知識,這才搞明白,原來我們的宿舍違背了“單一職責原則”。除了不是廁所,宿舍既是臥室,又是餐廳,既是書房,又是廚房,還是游戲機室兼棋牌室,甚至還兼琴房及健身房。我勒個去!你想看書,甲在看球,乙在泡面,丙在泡腳,還有一大波同學隨時準備過來串門,發小廣告,送外賣。所以,“看書”這個“方法”還是得放在“圖書館”這個“類”,或者“自習室”這個“類”中,因為這是它們的職責,并且它們是職責單一的。并不是說宿舍里就絕對不可以看書,而是由于它承擔了過多的職責,這些職責在并發執行的時候就會相互干擾。

“單一職責原則”其實也蘊含著深沉的人生智慧——任何事情要想做好就必須要專心致志地做——軒轅黃帝曰“守一”,堯舜薪傳“惟精惟一”,《周易》曰“貞一”,老子曰“執一”,管子曰“專一”,都是在教導我們這個樸素的道理。學習也好,工作也好,要想取得成就,就必須要“惟精惟一”。社會生產之所以要分工,如今更是高度分工,同樣也是因為這個道理。大浪淘沙,作為一名程序員,如何在激烈的競爭中站穩腳跟,甚至立于不敗之地呢?沒有別的辦法,一個字:“精一”!如果你還在對各種技術泛泛地涉獵,卻沒有一樣拿手好戲,那么趕緊依據“單一職責原則”重構一下自己吧!

二·開放封閉原則(Open-Closed Principle)      

定義:軟件實體應當對擴展開放,對修改關閉。

如果你想讓自己更好看,無非有兩種辦法。你可以穿花衣服,做頭發,涂各種霜擦各種粉,可以戴帽子戴紅領巾,這些都是“擴展”。另外,你也可以割雙眼皮,開眼角,墊鼻梁墊眉弓墊下巴,祛咬肌磨腮,而這些當然就是“修改”。之所以要對擴展開放而對修改關閉,是因為修改常常是危險的,是需要付出代價的。因整容失敗而慘死手術臺的新聞早就不稀奇了,至于韓苗可、喬絲琳-威登斯坦、風扇大媽這樣的例子我就不舉了,不是怕嚇著大家而是自己害怕。很簡單的道理嘛,一修改就容易出現Bug,而且常常是些意想不到的Bug,Duang ~ ~,加特技的Bug!      

[[131436]]

       

[[131437]]

說到這里,另外一件修改源代碼的事就不得不提了——轉基因!猶記得高中學生物的時候,一個令人聞風喪膽的名字深深地刻進了彼時我幼小的心靈,歷久彌新,那就是——“BT毒蛋白”——我天!變態毒蛋白!這是有多毒!這變態毒蛋白本源自“蘇云金芽孢桿菌”,后來,偉大的科學家們發現了它,并將它的基因片段拼切到了轉基因水稻、轉基因大豆,轉基因棉花上(糧油棉全給占領了!),怎么看怎么像科幻片中的怪博士毀滅世界的節奏······雖然關于轉基因作物安全性的問題至今仍有爭議,但是這種修改造物主底層源代碼的行為讓身為程序員的我們倍感擔憂啊!誰知道會出現什么樣的Bug!也許某天Duang ~ ~的一下,就出現了一個加特技的Bug!

#p#

三·依賴倒轉原則(Dependency-Inversion Principle)

定義:高層模塊不應該依賴底層模塊,他們都應該依賴抽象。抽象不應該依賴于細節,細節應該依賴于抽象。

前些年我們經常聽到一個說法,叫“一切向錢看”,的確是當今社會的某種真實寫照。憤青朋友請稍安勿躁,關于現代性批判的話題后頭我們會談,這里還是先來肯定一下資本主義的巨大成就。假使我們是原始社會,并沒有錢。好了,我想吃肉!可是咱家窮,沒肉。而我的鄰居養了幾只野雞,但是“偷來搶來做女婿換來”恐怕都不妥,好在我前些日用玄鐵打了一只絕世好劍,于是我對鄰居道:“拿我絕世好劍換君一只雞,何如?”,鄰居曰;“要得!”,于是我有了一頓豪華午餐。一個月后,我又想吃肉!這回我拿出剛煉好的一顆大還丹,對鄰居道:“拿我起死回生大還丹換汝一只雞,中不中?”,鄰居白我一眼,道:“我—要—喝—奶—奶!”。沒辦法,為了吃雞,我跑到七里之外的隔壁部落,先找一個老婆婆,用我起死回生大還丹換了她兩個壇子,又拿其中一個壇子跟當地一個養奶牛的大伯換了一壇奶,剛好用另一個壇子裝回去(還是蠻機智的!),然后把奶給鄰居喝了,當然壇子還得還回來,我這才如愿以償吃到了一只野山雞。漸漸的,大家都覺得這樣換東西實在太麻煩了!于是,大家交都愿意換最常用的東西,比如鹽啊,布啊,斧子啊,因為這些東西基本家家都要用而且以后方便換成其他東西。可是,有些人口味淡不要鹽,有些人陰虛火旺不要布,有些人老弱病殘不要斧子,況且,鹽容易撒,布容易破,斧子容易生銹,所以還是不方便。  

[[131438]]

于是再后來,貨幣就誕生了,它的作用就是充當“一般等價物”。任何商品都有其價值,所謂交換無非是按各自的價值量來交換,既然如此,那就找一個東西代表這個抽象的價值量,其他東西都來跟個它換就OK了!而這不正體現了“依賴倒轉原則”嗎?

四·里氏代換原則(Liskov-Substituent Principe.) 

定義:所有引用基類的地方必須能夠透明地使用其子類的對象。 

亞里士多德著名的三段論:“人都是有死的,蘇格拉底是人,所以蘇格拉底是有死的。”這不就是一個“里氏代換”嗎?同樣,你、我、他都is-a人,根據里氏代換原則當然也都是“有死的”。

“人固有一死”這個道理大家都知道,但是不見得都懂得。托翁有篇小說叫做《伊凡·伊里奇之死》,講的是一個小人物,半生庸庸碌碌,比上不足比下有余,突然有一天生病住進了醫院,醫生護士、親戚朋友們都說“你會好起來的。”起初他自己也這樣認為。可是沒過多久他突然意識到,自己這回恐怕好不了了,于是陡然意識到“死亡”其實是一個相當嚴肅的問題!我們平時總是在逃避“死亡”問題,對其敷衍塞責。正如所有人不假思索地對伊凡·伊里奇說“你會好起來的”,就像你訂外賣催單的時候客服永遠不假思索地答復“已經送出去了!”。魯迅先生有篇著名小說——某家生了個大胖小子,一人說:“這小子以后一定會發財!”,主人敬酒;一人說:“這小子以后一定會做官!”,主人致謝;一人說:“這小子以后一定會死。”,亂棍打出!我們逃避對死的思考,某種意義上就是在逃避對生的思考。

[[131439]]

中國人忌諱說“死”常換成說“百年之后”,而“百年”就好比“飛流直下三千尺”的“三千尺”,反正就是很長很長,我們總覺得“來日方長”。可是事實上,即便“壽終正寢”也無非就是“秋后問斬”。而剩下的人則隨時會被自然災害、交通事故、突發疾病、飛來橫禍奪去生命!死其實離我們很近!就如同一把懸在我們頭頂的達摩克利斯之劍。所以海德格爾這樣定義死:“死是最本己的,無所關聯的,確知而不確定的,超不過的可能性。”既然死是“可能性”,那我們就必須面向“可能性”籌劃選擇自己的人生。所以海德格爾主張“提前到死中去”亦即“向死而生”!毛主席曾講“中國人連死都不怕還怕困難?”,在“人終有一死”面前還有什么事情不能去做呢?還有什么事情不能去嘗試呢?人生苦短,老病相催,真要在碌碌一生之后才發現“一失足成千古恨,再回首已百年身”嗎?

參考閱讀本人另一篇博客:??清明時節欲斷魂——未知死焉知生?——向死而生!?

#p#

五·接口隔離原則(Interface-Segregation Principle)

定義:客戶端不應該依賴那些它不需要的接口。 

網絡快速改變著人們的心智狀態,讓人們始終處于“在線(on-line)”狀態。我們的思考是眾包的、公布式的,不再有中心。我們總是看別人在發表什么觀點,總是聽別人在聊什么話題,于是轉發、轉發,再轉發。你看姚晨做公益,你學李開復做自己,你在方韓大戰中站隊……你的內心是由他們構成的雜拌兒。可你自己呢?我們為別人而活——為了父母的期待,領導的盼望,同事朋友之間的比較而活得爭先恐后,可你有為自己活過嗎?我們被各種刺激出來的欲望裹挾——我們想向別人一樣住大房子,開豪車,想出人頭地,有一百部想看的電影,想周游世界,想投資理財,想買各種看得順眼的商品,可是你清楚自己究竟需要什么嗎?

[[131440]]

我們不應依賴于那些我們不需要的接口。當年,蘇格拉底在看到擺賣的奢侈物品時,說道:我不需要的東西可真不少啊!叔本華曾說:“正如一個不需要或只需要很少進口物品的國家,才是最幸運的國家,同樣,如果一個人內在充足、豐富,不需要從自身之外尋求娛樂,那么,這個人就是一個最幸運的人。因為進口物品使國家花費不菲,仰仗他人,同時又帶來危險、制造麻煩。”老子說:“五音令人耳聾,五色令人目盲,馳騁田野令人心發狂。”莊子講:“墮肢體,黜聰明,吾喪我。”孔子講“反求諸己”,孟子講“反身而誠”,曾子講“一日三省吾身”,禪宗講“明心現性”,王陽明講“致良知”,脫離了對外物迷亂的追求,才能真正關照到內在的本心。

所以請根據“接口隔離原則”重構一下自己!  

責任編輯:林師授 來源: 熬夜與煙博客
相關推薦

2011-09-07 09:21:01

設計模式

2011-06-29 15:44:19

SEO

2020-06-09 07:00:00

面向對象編程編程原則

2011-07-19 18:13:15

高效數據庫

2020-09-18 11:25:43

智能

2022-02-28 08:00:00

軟件開發敏捷方法技術

2019-09-16 23:03:12

軟件設計技術

2015-01-21 16:09:12

物聯網數據分析治理

2014-12-04 18:12:32

百會CRM

2012-03-15 11:15:13

Java設計模式

2022-09-28 07:31:03

SOLID對象設計

2012-03-05 13:58:34

設計模式里氏置換

2012-03-07 10:40:19

Java設計模式

2022-03-31 10:24:23

人工智能技術機器人

2012-03-07 11:03:13

Java設計模式

2022-05-09 14:33:20

代碼設計設計模式

2015-09-23 17:12:18

API設計原則

2010-03-31 17:26:52

SaaS

2012-03-08 10:57:00

Java設計模式

2012-02-01 13:24:37

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 正在播放国产精品 | 国产精品免费高清 | 日韩a在线观看 | 国产福利资源 | 欧美日韩综合 | 91福利在线观看 | 一区在线视频 | 欧美一区二区三区四区五区无卡码 | 九九久久久 | 精品一区二区三区在线观看国产 | 男女视频91| 亚洲视频一区二区三区四区 | 国产a级黄色录像 | 日本一区视频在线观看 | 亚洲成人一区 | 亚洲精品在线免费观看视频 | 亚洲一区二区久久久 | 日韩网站免费观看 | 成人一区二区三区视频 | 黄色在线播放视频 | 日本久草视频 | 国产激情一区二区三区 | 亚洲aⅴ精品 | 一级毛片视频在线 | 亚洲在线一区二区 | 国产综合精品一区二区三区 | 国产福利二区 | 日韩午夜在线播放 | 欧美日韩免费一区二区三区 | 精品成人一区二区 | 亚州中文| 国产99视频精品免费视频7 | 久久久久久久久久久久亚洲 | 久久精品一区二区 | 亚洲激情视频在线 | 国产精品久久久久一区二区 | 亚洲精品在线免费观看视频 | 91亚洲精品在线 | 不卡视频一区 | 狠狠草视频 | 欧美成人高清 |