首頁  >  文章  >  Java  >  帶有靜態欄位的介面:它們是程式碼味道嗎?

帶有靜態欄位的介面:它們是程式碼味道嗎?

Patricia Arquette
Patricia Arquette原創
2024-10-31 09:17:01607瀏覽

 Interfaces with Static Fields: Are They a Code Smell?

有靜態欄位的介面:粗心者的陷阱

Java 開發人員經常遇到大量用作「常數」的靜態字段的介面。雖然這種技術看起來很方便,但通常被認為是不好的做法。

這種方法的主要問題是整個程式碼中常數的激增。實作類別使所有靜態欄位成為其公共介面的一部分,即使它們僅在內部使用。例如,SwingConstants 介面由許多類別實現,不加區別地向所有人公開其廣泛的常數清單。

軟體架構師 Josh Bloch 也警告不要這種模式:

「實現常數介面會導致[實作細節] 洩漏到類別的匯出 API 中,」他說。 「它代表了一種承諾:如果在未來版本中修改類,使其不再需要使用常數,它仍然必須實現介面以確保二進位相容性。」

此模式的替代方案包括使用枚舉或將常數定義為不可實例化類別中的公共靜態欄位。這些方法允許其他類別存取常數,而不會擾亂它們自己的 API 或違反封裝原則。

總之,雖然具有靜態字段的介面可能看起來提供了一些實用程序,但它們引入了不必要的複雜性和潛在的維護問題。使用常數時,請考慮使用枚舉或不可實例化的類別作為更合適且可維護的選項。

以上是帶有靜態欄位的介面:它們是程式碼味道嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn