程式碼整潔之道-類

  • 2019 年 10 月 7 日
  • 筆記

在面向對象的編程中,類是其中的基本單位,就像面向過程中的函數一樣。所以在說類時,可以借鑒一下前面的函數,不如只做一件事,也就是所說的單一職責。

函數應該短小,對於類來說,也是這樣。函數的短小可以通過程式碼行數來判斷,對於類來說,如何判斷呢?可以通過判斷其職責,也就是看它是否只做一件事情。同時做多件事情的類,命名也是一件痛苦的事情。比如一個類名叫 Manneger,很容易讓人誤解,它管理什麼呢?

所以,簡單來說,一個類應該只做好一件事,足矣。

當然,大概率寫出的第一版不會遵循這個規則。所以對其拆分就不可避免了。

比如,在拆分一個方法時,新的方法使用了原來的4個變數,那麼是不是就要將這4個變數作為參數傳遞進去呢?我不要。其實完全可以將這4個變數作為類的屬性。但是這樣的話問題來了,難以避免的會導致類中出現很多只在個別方法中用到的屬性,很難受。等等,只在個別方法中用到,為什麼不能把他單獨拆解作為一個類呢?很好。


首先,我覺得這樣做很好,感覺很好,但是說不上來的那種好。雖然感覺這樣寫出來的會很清晰,但還從來沒有這樣寫過,之後自己試一試,看看效果是否真如作者所說一樣。各位看官也盡可一試。