2014-01-07 60 views
0

我對編程相當陌生,並且對類訪問有個疑問。假設我用一堆公共變量和公共方法創建了一個名爲TheClass的類。然後我創建了其他幾個需要訪問TheClass實例的方法/變量的頂級類。因此,當我創建TheClass的實例並且想要通過其他頂級類訪問該實例的變量時,我的理解是,我可以:從外部類獲取對實例變量的訪問

將TheClass的新實例傳遞給每個構造函數當它們被創建,使他們能夠訪問theClass描述的這樣的實例內的變量其他類:

TheClass theClass = new TheClass(); 

OtherClass otherClass = new OtherClass(theClass); 

或者,我可以窩所有其他類中theClass描述的,從而使他們能夠享受的變量該類的實例...我想?

最後,我可以使TheClass靜態變量/方法從而給予TheClass之外的其他類以訪問它們,但這不是好的,因爲我需要訪問正在運行的TheClass實例的變量。

我問的原因是因爲我最近創建了我的第一個大程序,並且將一個類對象的實例傳遞給大量其他類,並且在它後面變得相當麻煩。我覺得我做錯了什麼。我是否忽略了從其他頂級類訪問類的實例變量的巨大問題?

即使瞭解Java編程的基礎知識,我也有很長的路要走,但這是一個不斷浮出水面的問題,所以我想我會在這裏問一下。

回答

2

這是一個常見問題,其中的原因之一就是singleton pattern,dependency injectionapplication context(這只是單身的一種變體)而非常受歡迎。

他們都允許你最大限度地減少對象在任何時間的傳遞。

第一步是體系結構。如果你有你的繼承和組成,它會減少這個 - 雖然它仍然存在。

下一個選項通常是Singletons。 (應用程序上下文只是使用一個單例,然後指向來自該單例的其他資源)。最近,依賴注入是迄今爲止的首選路由,因爲它也使單元測試更容易。

http://en.wikipedia.org/wiki/Dependency_injection

相關問題