物件導向思想的勝利 01

2022-05-01 12:33:08 字數 1740 閱讀 5034

最近在學習設計模式,偶然在老闆辦公室看到一本程杰老師的《大話設計模式》,倍感新奇,略翻了一下,感覺很適合自己的口味,。,。所以對自己所看到的,所理解到的隨筆記下,不足之處敬請拍磚!

物件導向的4中特性:

1、可維護  2、可復用  3、可擴充套件  4、靈活性好

話說三國時期,曹操帶領百萬大軍攻打東吳,大軍在長江赤壁駐紮,軍船連成一片,眼看就要滅掉東吳,統一天下,曹操大悅,於是大宴眾文武,在酒席間,曹操詩性大發,不覺吟道:「喝酒唱歌,人生真爽。…………」。眾文武齊呼:「丞相好詩!」於是一臣子速命印刷工匠刻版印刷,以便流傳天下。

樣張出來給曹操一看,曹操感覺不妥,說道:「喝與唱,此話過俗,應改為『對酒當歌』較好!」,於是此臣就命工匠重新來過。工匠眼看連夜刻版之工,徹底白費,心中叫苦不喋。只得照辦。

樣張再次出來請曹操過目,曹操細細一品,覺得還是不好,說:「人生真爽太過直接,應改問語才夠意境,因此應改為『對酒當歌,人生幾何?…………』!」當臣轉告工匠之時,工匠暈倒…………!

可惜三國時期活字印刷還未發明,所以類似事情應該時有發生,如果是有了活字印刷。則只需更改四個字就可,其餘工作都未白做。實在妙哉。

第一,要改,只需更改要改之字,此為可維護;第二,這些字並非用完這次就無用,完全可以在後來的印刷中重複使用,此乃可復用;第三,此詩若要加字,只需另刻字加入即可,這是可擴充套件;第四,字的排列其實有可能是豎有可能是橫排,此時只需將活字移動就可做到滿足排列需求,此是靈活性好

而在活字印刷術之前,上面的四種特性都無法滿足,要修改,必須重刻,要加字,必須重刻,要重新排列,必須重刻,印完這本書後,此版已無任何可再利用價值。

小時候,我一直奇怪,為何火藥、指南針、造紙術都是從無到有,從未知到發現的偉大發明,而活字印刷僅僅是從刻版印刷到活字印刷的一次技術上的進步,為何不是評印刷術為四大發明之一呢?

做了軟體開發幾年後,經歷了太多的客戶(曹操)改變需求,更改最初想法的事件,才逐漸明白當中的道理。其實客觀的說,客戶的要求也並不過份(改幾個字而已),但面對已完成的程式**,卻是需要幾乎重頭來過的尷尬,這實在是痛苦不堪。說白了,原因就是因為我們原先所寫的程式,不容易維護,靈活性差,不容易擴充套件,更談不上覆用,因此面對需求變化,加班加點,對程式動大手術的那種無耐也就非常正常的事了

之後當我學習了物件導向分析設計程式設計思想,開始考慮通過封裝、繼承、多型把程式的耦合度降低(傳統印刷術的問題就在於所有的字都刻在同一版面上造成耦合度太高所製),開始用設計模式使得程式更加的靈活,容易修改,並且易於復用。體會到物件導向帶來的好處,那種感覺應該就如同是一中國酒鬼第一次喝到了茅台,西洋酒鬼第一次喝到了xo一樣,怎個爽字可形容呀。

再次回顧中國古代的四大發明,另三種應該都是科技的進步,偉大的創造或發現。而唯有活字印刷,實在是思想的成功,物件導向的勝利。不知您是否也有所感呢?

文章摘自:

物件導向的思想

物件導向的好處 1.物件導向是一種更符合人們思考習慣的一種思想 2.面向過程的更多體現是執行者 物件導向更多體現的是指揮者 3.有了物件導向這個事情後 複雜問題就簡單化了 大西瓜如何用挖掘機炒菜?幾個事物 2事物 大西瓜 name age 屬性 行為 會開挖掘機 挖掘機 color lunzi 翻炒...

物件導向的思想

1 什麼是物件導向的思想 c語言是面向過程的語言,c 是c語言的拓展,c 是物件導向的語言,而 物件導向是一種思想 即oop思想。如下圖所示,實體 就 是客觀存在並可相互區別的事物 例如人 書本 動物等。人作為實體,具有姓名 性別 年齡等這些屬性以及吃飯 睡覺等行為。類 是對現實生活中一類具有共同特...

物件導向的思想

如果ob1.equals ob2 true,則兩者的hashcode一定相等,但是反過來卻不成立。介面的概念 從使用者 使用實現 的角度來看,讓使用者不知道內部,也無需關心內部組成,只是留出乙個介面,讓使用者去使用就行 強調合約,強調協作雙方無法犯錯。介面與類相比 由編譯器強制的乙個模組間協作的合約...