<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    rosial

    lost memory
    數據加載中……

    《爪哇夜未眠》- 程序設計學習篇 - OOOO


    學鏞小辭典

    單字:OOOO(Obsessive-Object-Orientation Obliquity)
    發音:KK: [O`OOO] DJ: /O`OOO/
    解釋:n. 【醫學】【計算機】過度對象導向偏頗癥,是一種過度使用對象導向(Object-Orientation)的病癥,好發于年輕的程序員身上。屬于接觸性傳染,帶原者包括了不良的程序設計書籍和不夠專精的程序設計老師及同事同學。

    例句:

    1.????? OO Advocates tend to be OOOO patients.(OO 擁護者很容易就會變成 OOOO 的病人。)

    2.????? People with a good understanding of computer science can get rid of OOOO.(對于信息科學有深入的了解可以避免 OOOO。)

    3.????? Most OO experts used to be OOOO victims.(大部分 OO 專家都曾經是 OOOO 的受害者。)

    為了要有模有樣,我發明 OOOO 這個詞時,還特別參考了心理學的強迫癥(obsessive-compulsive disorder),原本想叫做 obsessive-object-orientation disorder(OOOD),只是我不喜歡在這個詞的最后使用 disorder,我于是用 O 開頭的單字 obliquity 來取代 disorder,剛好形成四連 O 的詞。

    當今 OOOO 的感染者人數眾多,數量直逼想靠樂透彩發大財的愚夫愚婦。他們常常有嚴重的幻想,認為全世界最了不起的東西就是 OO,成天開口閉口都是 OO,寫程序時只管大用特用 OO,完全不管 OO 所帶來的負面影響。

    許多錯誤的信息,是造成 OOOO 普遍的原因。例如下面的說法,在許多書上都看得到:

    對象導向是很自然的,教導一個小孩對象導向比教導一個計算機教授更簡單,因為教授已經太熟悉計算機內的運作,所以比較難建立正確的對象導向觀念。

    上述的說法并不正確,但是許多人卻都以為這樣的說法是對的。我認為這樣的說法錯在于:

    1.????? 只要對于計算機運作原理的認知不夠,很難真的學會 OO,因為 OO 畢竟是用在計算機上的。許多人通常只能了解封裝,對于繼承不能完全掌握,對于多型更是難以捉摸。

    2.????? 只要對于計算機運作原理的認知不夠,規劃出來的 OO 一點都不實用。可能是效率太差,可能是彈性太差,問題很多。

    OOOO 患者寫出來的程序常常會有下列的病征:

    1.????? 太多類別:每個類別重用率極低,造成內存浪費太多。通常這樣的狀況,必須適當地利用繼承來改寫,或把功能類似的數個類別濃縮成一個類別。

    2.????? 太多繼承:繼承固然可以提高重用率,但是也會使得對象體積變大許多,而且執行效率也會變差。繼承被誤用的情況一直很嚴重。更糟的是,繼承是一種靜態的關連,使得程序的彈性變差。許多時候,繼承可以用 associate 來改寫。

    3.????? 太多物件:通常前述的「太多類別」會造成太多對象的狀況,但是即使類別不多,也有機會造成太多對象的狀況。一個程序使用太多對象會造成內存浪費。其實在許多時候,對象可以彼此共享的。

    4.????? 太多短命物件:這會造成建構(construct)和回收(reclaim)花的時間太多,對于系統效率有很不好的影響。許多程序員的程序中有許多短命對象,但他們卻完全不自覺。可以使用 Object Pool 等方式來改寫。

    5.????? 太多視覺組件:「太多對象」已經很不好了,如果這些對象是視覺組件,更是雪上加霜。視覺組件需要耗費 CPU 大量的運算能力。

    6.????? 太多執行緒:其實從 OO 至上的角度來看,每個對象都是一個執行緒是最 OO 的,但是這樣顯然實際上不可行,因為占用太多 OS 的資源,效率會變很差。

    想擺脫 OOOO,你需要花好幾年的時間。建議各位好好研究 Java Swing,這是一個將 OO 發揮到極致又不失彈性和效率的 API。上述的六個 OOOO 的病征,Swing 完全都沒有,足見 Swing 設計的巧妙。

    OOOO 固然不好,但千萬不要因噎廢食而不用 OO,畢竟 OO 還是好東西,只是再好的東西都要適量。想擺脫 OOOO,您不妨多學習一些好的 design pattern,并認識操作系統、編譯器、以及程序語言內部的原理。

    posted on 2006-07-03 14:43 rosial 閱讀(298) 評論(0)  編輯  收藏 所屬分類: 蔡學鏞

    主站蜘蛛池模板: 亚洲黄色网址大全| 亚洲偷自精品三十六区| 无码国产精品一区二区免费虚拟VR | 又粗又硬免费毛片| 黄色网址免费大全| 国产免费一级高清淫曰本片| 欧美激情综合亚洲一二区| 亚洲精品综合久久中文字幕| 亚洲国产成人精品无码区在线观看| 99久久久国产精品免费无卡顿 | 亚洲国产日韩在线成人蜜芽| 亚洲精品午夜无码专区| 国产精品V亚洲精品V日韩精品| 国产精品免费小视频| 韩国欧洲一级毛片免费| 永久久久免费浮力影院| 在线免费观看污网站| 国产yw855.c免费视频| 永久免费看bbb| 亚洲一区二区精品视频| 亚洲精品国偷自产在线| 亚洲综合自拍成人| 亚洲中文久久精品无码1 | 日本特黄a级高清免费大片| 免费的涩涩视频在线播放| 亚洲日韩人妻第一页| 亚洲国产天堂在线观看| 亚洲性线免费观看视频成熟| 亚洲av永久中文无码精品综合 | 2048亚洲精品国产| 亚洲一区动漫卡通在线播放| 日本亚洲欧美色视频在线播放| 九九免费精品视频在这里| 亚欧在线精品免费观看一区| 日韩精品无码人妻免费视频| 中文字幕人成人乱码亚洲电影| 亚洲一卡二卡三卡四卡无卡麻豆| 四虎永久在线精品免费一区二区 | 亚洲综合综合在线| a级毛片在线免费看| 青青草免费在线视频|