2
我有公共包/類不應該是公共API的一部分。不過,我想我不能創建一個新的API Maven包,因爲核心項目也使用公共API。公共包/類不應該是公共API的一部分
它應該是一個常見的情況,但我認爲這是一個Java問題,不允許細粒度訪問。
您是否有任何關於如何「保護」訪問不應該成爲公共API一部分的公共類的提示?然而,大多數開發人員沒有想過或者至少沒有做任何事情來保護這些類不被外部訪問,這似乎確實是一種常見的情況。
我有公共包/類不應該是公共API的一部分。不過,我想我不能創建一個新的API Maven包,因爲核心項目也使用公共API。公共包/類不應該是公共API的一部分
它應該是一個常見的情況,但我認爲這是一個Java問題,不允許細粒度訪問。
您是否有任何關於如何「保護」訪問不應該成爲公共API一部分的公共類的提示?然而,大多數開發人員沒有想過或者至少沒有做任何事情來保護這些類不被外部訪問,這似乎確實是一種常見的情況。
通常,不應訪問的類放入另一個名爲「internal」的包中。所以你應該有com.company.application爲api類,和com.company.application.internal爲實現類。但是這沒有強制執行。在OSGI模型中,對於從軟件包中導出的軟件包有更精細的控制,但不能用普通的Java進行控制。
我不關注。你是否控制這些類?爲什麼你不能讓他們不公開? –
是的,但我正在使用我的項目中的其他包,例如org.sirix.axis,org.sirix.axis.filter,org.sirix.access,org.sirix.node,org.sirix.api(for公共API)和其他包/類。在實現org.sirix.api.NodeReadTrx的org.sirix.access.NodeReadTrxImpl中我還使用包org.sirix.node中的節點。或者我錯過了什麼?在這些情況下,至少應該不可能提供除公共之外的訪問修飾符。 – Johannes