【java基礎(二十一)】類設計技巧

一定要保證數據私有

這是最重要的;絕對不要破壞封裝性。有時候,需要編寫一個訪問器或更改器方法,但是最好還是保持實例域的私有性。很多慘痛的經驗告訴我們,數據的表示形式很可能會改變,但他們的使用方式卻不會經常發生變化。當數據保持私有時,他們的表示形式的變化不會對類的使用者產生影響。

一定要對數據初始化

Java不對局部變量進行初始化,但是會對對象的實例域進行初始化。最好不要依賴於系統的默認值,而是應該顯式地初始化所的數據,具體的初始化方式可以是提供默認值,也可以是在所有構造器中設置默認值。

不要在類中使用過多的基本類型

如果一個類中有很多基本類型用來描述一個東西,那麼就可以用一個類來代替這麼多的基本類型。用其他的類代替多個相關的基本類型的使用。這樣會使類更加易於理解且易於修改。

不是所有的域都需要獨立的域訪訪問器和域更改器

比如,僱員類,一旦構造了僱員對象,可以隨時設置僱員的薪金,但這個僱員的僱傭日期是禁止被修改的。在對象中,常常包含一些不希望別人活得或者設置的實例域。

將職責過多的類進行分解

究竟什麼算是“過多”?因人而異,每個人的想法都不同,但是,如果明顯的可以將一個複雜的類分解成兩個簡單的類,就應該將其分解。

類名和方法名要能夠體現它們的職責

與變量應該有一個能夠反映其含義的名字一樣,類也應該如此。命名類名的良好習慣是採用一個名詞、前面有形容詞修飾的名詞或動名詞修飾的名詞。對於方法來說,習慣是訪問器方法用小寫的get開頭,更改器方法用小寫的set開頭。

優先使用不可變的類

LocalDate類以及java.time包中的其他類是不可變的(沒有方法能修改對象的狀態)。
更改對象的問題在於,如果多個線程試圖同時更新一個對象,就會發生併發更改。其結果是不可預料的。如果類是不可變的,就可以安全地在多個線程間共享其對象。
因此,要儘可能的讓類是不可變的(String類),這是一個很好的想法。
當然,並不是所有類都應當不可變。如,員工類,當員工加薪時,員工的薪金變了,這個時候如果保持不可變,而生成一個新的員工對象,就會變的很奇怪且不合常理。

捐贈

若你感覺讀到這篇文章對你有啓發,能引起你的思考。請不要吝嗇你的錢包,你的任何打賞或者捐贈都是對我莫大的鼓勵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章