這是一則順手做不花力氣, 但不做也無傷大雅的建議。
作者建議這麼寫:
List<String> names = new ArrayList<String>();
而非這麼寫:
ArrayList<String> names = new ArrayList<String>();
這樣若要替換實作方式時, 只需改一行程式即可。比方說從 single-thread 要改為 multi-thread, 只要改變產生 names 的程式:
List<String> names = new Vector<String>();
剩下用到 names 的程式都不用改。
以前我覺得這是理所當然該做的事, 甚至用這做為「是否具備 Java 常識」的指標之一。後來發覺實在是太多人不知道這個準則, 而開始重新思考究竟沒做到這件事會有什麼後果?
結論是: 其實不太嚴重, 一來這鮮少發生。二來若真有那麼一天需要換實作, 配合 IDE 也可以很快地改完 (static typing 萬歲!!)。雖說不遵守這個準則也無傷大雅, 我仍覺得照著做較好。如同之前在《養成寫程式的好習慣》所言, 做好許多這類小細節, 長久下來會少掉很多問題, 這類的成本是難以追蹤的。
沒有留言:
張貼留言