麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

final的注意事項

2019-11-18 13:21:30
字體:
來源:轉載
供稿:網友

  設計一個類時,往往需要考慮是否將一個方法設為final。可能會覺得使用自己的類時執行效率非常重要,沒有人想覆蓋自己的方法。這種想法在某些時候是正確的。
  
  但要慎重作出自己的假定。通常,我們很難猜測一個類以后會以什么樣的形式再生或重復利用。常規用途的類尤其如此。若將一個方法定義成final,就可能杜絕了在其他程序員的項目中對自己的類進行繼續的途徑,因為我們根本沒有想到它會象那樣使用。
  
  標準java庫是闡述這一觀點的最好例子。其中非凡常用的一個類是Vector。假如我們考慮代碼的執行效率,就會發現只有不把任何方法設為final,才能使其發揮更大的作用。我們很輕易就會想到自己應繼續和覆蓋如此有用的一個類,但它的設計者卻否定了我們的想法。但我們至少可以用兩個理由來反駁他們。首先,Stack(堆棧)是從Vector繼續來的,亦即Stack“是”一個Vector,這種說法是不確切的。其次,對于Vector許多重要的方法,如addElement()以及elementAt()等,它們都變成了synchronized(同步的)。正如在第14章要講到的那樣,這會造成顯著的性能開銷,可能會把final提供的性能改善抵銷得一干二凈。因此,程序員不得不猜測到底應該在哪里進行優化。在標準庫里居然采用了如此笨拙的設計,真不敢想象會在程序員里引發什么樣的情緒。
  
  另一個值得注重的是Hashtable(散列表),它是另一個重要的標準類。該類沒有采用任何final方法。正如我們在本書其他地方提到的那樣,顯然一些類的設計人員與其他設計人員有著全然不同的素質(注重比較Hashtable極短的方法名與Vecor的方法名)。對類庫的用戶來說,這顯然是不應該如此輕易就能看出的。一個產品的設計變得不一致后,會加大用戶的工作量。這也從另一個側面強調了代碼設計與檢查時需要很強的責任心。

上一篇:為什么要上溯造型

下一篇:final方法

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久一区二区三区av | 黄色二区三区 | 羞羞的动漫在线观看 | 性视频久久 | 国产成人综合在线观看 | 亚洲欧美aⅴ | 污黄视频在线观看 | 国产91精品久久久久久久 | 亚洲91精品| 看免费5xxaaa毛片 | 在线播放黄色网址 | 91成人一区 | 国产盼盼私拍福利视频99 | a网站在线 | 亚洲天堂岛国片 | 国产一级毛片高清视频完整版 | 国产精品久久久久久久久久久久久久久久 | 狠狠干五月天 | 亚洲视频在线观看免费 | 久久精热| 欧美aaaaaaaa| 免费黄网站在线播放 | 免费一级毛片在线播放视频 | 欧美日韩夜夜 | 欧美性生活网站 | 日本高清黄色片 | 91热久久免费频精品黑人99 | 国产91久久久久久 | 成人在线视频一区 | 国产精品自拍99 | 成人免费福利视频 | 午夜精品福利影院 | 婷婷中文字幕一区二区三区 | 国产精品视频六区 | 中文字幕一区2区 | 日本精品婷婷久久爽一下 | 日本欧美一区二区三区在线观看 | 久久国产91 | 欧美另类综合 | 久久免费视频一区 | 久久亚洲网 |