l

2014年5月16日 星期五

談談壞味道(12):Incomplete Library Classes

May 07 17:53~ 18:29

image

 

Incomplete Library Class(不完整的程式庫類別)

寫程式應該沒有人會不使用到程式庫(library),在使用library的時候,經常遇到的一個問題就是你需要的某個功能剛好程式庫沒有提供。在大部分情況下鄉民們可能沒有辦法拿到程式庫的原始碼,就算鄉民們用到的是開源軟體,但是大部分的人還是不希望去動到程式庫的內容,因為改了之後萬一以後程式庫升級,又會出現相容性的問題(除非你把修改後的程式貢獻回去)。

之前介紹的幾種壞味道,以及移除方式,幾乎都是要去修改原本的程式碼,例如Rename、Move Method、Extract Method,在不想修改程式庫的前提之下,有沒有辦法補強這些「不完整的程式庫類別」?

對付(這個壞味道比較特別一點,只敢說對付,不能說消除)Incomplete Library Class壞味道的方法,在《Refactoring》書中提到可以套用Introduce Foreign Method和Introduce Local Extension。

***

想來想去,Incomplete Library Class之所以會是一個bad smell的原因(force),只想到modifiability和understandability這兩點。

***

友藏內心獨白:總覺得這個壞味道怪怪的挑眉質疑

沒有留言:

張貼留言