[英]Enum practices - Define inside a class/separately, make public/private
定義枚舉時的好習慣是什么?
例如,我有一個Person類。 對於本課程,我選擇使用值為MALE和FEMALE的枚舉。
枚舉應該在Person類中定義還是單獨定義? 枚舉應該定義為私有還是公共? 另外,您是否有任何進一步的建議可以使枚舉盡可能靈活?
恕我直言,使它成為class Person
的public static enum
。
原因是enum Gender
僅適用於人,因此將它放在那里以便它們被綁定在一起(性別在沒有人的背景下沒有用)。
好處:
private List<HealthIssue> genderSpecificHealthIssues;
TRANSGENDER
, INTERSEX
等等 唯一的缺點是你必須使用static
導入來使用它,即import static com.company.Person.Gender.*;
。
在許多JDK類中都可以看到這種模式,例如Calendar
,它定義了它在類中使用的許多與日期相關的常量。
要獲得完全的靈活性,請將其添加到靜態類中。 但當然,這僅適用於需要在整個應用程序中使用的枚舉。 對於本地和專業的枚舉,最好讓它們“接近”它們的使用位置。 例如 ,我有一個IPHandler類,它使IPv4和IPv6地址的處理,解析和轉換對類用戶透明(IPHandler是一個靜態類)。 它有一個枚舉IPType,其值為IPv4和IPv6,僅在IPHandler中用於多個操作。 由於它沒有在其他任何地方使用,因此它已在IPHandler類中定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.