2016-05-04 28 views
-2

我有一個包中的特定類:org.jdesktop.swingx.JXErrorPane。如何讓只有一個類訪問特定的API類

我使用了一個工廠類來調用JXErrorPane類中的方法,而我禁止任何其他類調用JXErrorPane。任何需要使用JXErrorPane類的其他類都需要調用工廠類。

我在這個網站上發現:http://www.eclipsezone.com/eclipse/forums/t53736.html關於如何禁止訪問特定的類或包,但它也會禁止我的工廠類。

有沒有辦法只允許工廠類訪問API類,但禁止任何其他類?

+0

你有控制'JXErrorPane'嗎?如果是這樣,你可以使它成爲'package-private',並將'Factory'放在同一個包含'public'修飾符的包中。然後只有同一個包中的類(例如你的工廠)可以訪問'JXErrorPane'。 – Jaims

回答

0

你的問題有點奇怪,但這是我的兩分錢價值:訪問修飾符應該是你的朋友。如果您不希望該類在您的包外部可見,則在類級別的默認訪問修飾符是有意義的。默認的構造函數將會限制對象的構造,使其僅在包內部可見。我假設這是你在問題中提到的工廠的應用。工廠用於創建對象。對於限制對工廠方法的調用,這不是工廠的正確應用。也許你正在尋找代理或委託模式。即使在這種情況下,訪問修飾符也是你的朋友。我不確定爲什麼你想要這樣的複雜性,雖然

相關問題