簡體   English   中英

Java Getter Setter代碼樣式

[英]Java Getter Setter Codestyle

在bean的上下文之外,反射,自省或任何其他經常引用的廢話,是否有重要的原因導致Java Getter / Setter始終被標記為Type getAttribute()void setAttribute(Type a)嗎?

最近我讀和寫了很多C ++代碼,回到Java時,我突然感到迫切需要使用Type attribute()void attribute(Type a)作為getter和setter的簽名,因為它們以某種方式使人感到更舒服突然使用。 它使我想起函數式編程,它具有將屬性作為對象的方法,而不是具有顯式更改或訪問屬性的方法。

您可以使用自己喜歡的方法;

Type attribute()void attribute(Type a)

原因是您的第一個示例

Type getAttribute() and void setAttribute(Type a)

“使用”是為了使該方法使用的目的顯而易見。 例如,一個項目的新開發人員可以選擇並理解代碼流,而無需在不同的類之間移動以查看該方法的作用。

Getters和Setters通常只是一個行函數。 如果函數要執行某些數據操作,則通常使用描述性名稱,而不要使用get或set。

簡介: Getters和Setters主要用於實體對象,在該對象中不應執行任何數據操作,而不是說不能完成。

較短的樣式是我使用的樣式。 AFAIK那些從事低級Java編程的人可能會使用它,因為它更像C ++,或者因為它不像EJB。

JavaBean getter / setter樣式的問題在於,它假定僅設置和獲取變量的實現,但是並非總是如此。

Java命名約定規定“ 方法應為動詞 ”,社區通常將其概括為“ 方法應以動詞開頭 ”。 這是一致性的問題。 您可能會很好地使用attribute ,但是我可以保證您會引起人們的混淆。 因此,如果您希望其他人閱讀和更改您的代碼,我強烈建議您使用getAttributesetAttribute 羅伯特·C·馬丁Robert C. Martin)在他的《 清潔代碼》 (“方法名稱”部分)中支持此論點。 它明確處理您的情況。

話雖這么說,Java-API本身有時違反了此規則(例如,使用Collections中的size()方法)。 這是一個已知的問題,但不應該阻止您做得更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM