簡體   English   中英

OOP - 每個類的成員變量和方法的數量

[英]OOP — number of member variables and methods per class

我在Java中有一個類,它有25個成員變量但只有兩個“有用”的方法(不包括setter / getters)。 我覺得好像有25個全局變量被左,右和中心修改,不知道發生了什么。 這是正常的嗎? 是否有任何“良好實踐”規則說明可以在一個類中合理地封裝多少數據成員和方法?

PS:我搜索了SO,但顯然這個問題還沒有被問到。

謝謝你的幫助 !

多少? 從來沒聽說過。

但我使用的規則是將變量保持在盡可能小的范圍內。 如果並非所有25個成員都表示對象的狀態,則不是所有成員都需要成員。

這當然聽起來不對。

我希望每個班級都有一個責任,並委托其他班級並與之合作。 如果你有25個成員,那么聽起來有很多事情發生。 我希望重構這個類:

  1. 識別正在發生的事情(正在執行的操作/操作)
  2. 確定參與這些任務的成員組
  3. 將這些提取到執行該角色的對象中,並在適當的位置委托給這些對象

在類中執行此操作可能是適當的,從而使重構對客戶端類不可見。 但是如果你有多個二傳手/吸氣者,我懷疑這不太可能。

但是,執行重構時,請確保該區域由適當的單元測試集覆蓋。

添加到其他答案后,請查看pmd規則的 TooManyFields部分。

據說那里

具有太多字段的類可能變得難以處理並且可以通過對新對象中的相關字段進行分組來重新設計以具有更少的字段。 例如,具有單個city / state / zip字段的類可以將它們停放在單個Address字段中。

其他規則也會派上用場,您可以使用pmdcheckstyle等工具來更好地了解代碼如何符合標准。

暫無
暫無

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

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