2015-07-20 35 views
1

我想使用包 - 私有構造函數來防止從外部實例化某個對象。唯一能夠實例化類的是一個工廠類,它駐留在同一個包中。使用來自外部模塊的包 - 私有構造函數實例化類

我的擔憂是,如果我的應用程序被編譯和密封,唯一可能的方式是提供一個包 - 專用作用域的新類,它可以被同一工廠訪問(或者爲什麼不是一個新的實現工廠),將會模仿與項目中引用我的密封庫的包完全相同的路徑。

雖然這絕非不可能,但我只是想知道它是否應該被認爲是一種好的做法。你認爲在這個意義上使用的包 - 私有範圍是什麼?

+0

我認爲這是正確的,唯一可行的方法就是使用包專用作用域。如果你想讓你的Factory類容易擴展,接口的使用可能更合適? – Ridcully

回答

0

它應該這樣工作。我沒有其他的想法來實現這一點。

但是,恕我直言,這樣做通常不是非常有建設性的。可能會有一些角落案件禁止其他預期使用,但總的來說,我認爲你應該嘗試建立工廠,因爲它的易用性和說服力。 如果你的工廠不是可擴展的,人們可能會最終在「你的」包中創建類,以便像他們想要的那樣訪問你的類。

相關問題