[英]Where to put non-public class?
假設我有一個 Java class A ,它需要一個助手 class B 。 該助手 class 僅用於A ,沒有其他用途。 此外, B不需要以任何方式使用A (不要調用方法或訪問字段)。
所以,問題是:把B放在哪里?
有以下選項:
Static 嵌套 class。 在我看來,它只是讓代碼變得不那么清晰(更多的縮進等等)。
public class A {... private static class B {... } }
同源中的非公開 class。 我喜歡這個選項。
public class A {... } class B {... }
非公開 class 在單獨的源。 不過,看起來這個選項有一點開銷。
// A.java public class A {... } // B.java class B {... }
目前,我更喜歡第二種選擇。 你對此有什么想法? 最佳做法是什么? 有沒有權威的消息來源?
我強烈投票支持選項(1)。 The idea is, that class B
is only needed by class A
and option (1) is the only alternative that clearly expresses that intention: class B
is part of class A
.
有幫助嗎?
沒有嚴重的缺點,但至少可以找出一些缺點,包括:
您可以在 A 中使用嵌套的 static class。更好的封裝,因為嵌套的 class 是一種僅在一個地方使用的邏輯分組類的方法。 您的助手 class 是否僅包含字段?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.