簡體   English   中英

從外部類獲取對實例變量的訪問權限

[英]Gaining access to instance variables from outside classes

我對編程很新,我對類訪問有疑問。 假設我使用一堆公共變量和公共方法創建了一個名為TheClass的類。 然后我創建了幾個需要訪問TheClass實例的方法/變量的其他頂級類。 所以,當我創建一個TheClass實例並且我想通過其他頂級類訪問該實例的變量時,我理解我可以:

在創建它們時,將新的TheClass實例傳遞給每個其他類的構造函數,以便它們可以像這樣訪問TheClass實例中的那些變量:

TheClass theClass = new TheClass(); 

OtherClass otherClass = new OtherClass(theClass);

或者,我可以將所有其他類嵌套在TheClass中,從而讓他們可以訪問theClass實例的變量......我想?

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

我問的原因是因為我最近創建了我的第一個大程序,並且我正在將一個類對象的實例傳遞給大量其他類,並且它只是跟着它變得非常繁瑣。 我覺得自己做錯了什么。 我是否忽略了從其他頂級類訪問類的實例變量方面的巨大內容?

我距離理解Java編程的基礎知識還有很長的路要走,但這是一個不斷浮出水面的問題所以我想我會在這里問一下。

這是一個常見問題,其中一個原因就是singleton patterndependency injectionapplication context (它只是單例的變體)之類的東西如此受歡迎。

它們都允許您始終最小化對象的傳遞。

第一步是架構。 如果你的繼承和組合正確,它會減少這一點 - 盡管它仍然存在。

下一個選項始終是單身人士。 (應用程序上下文只使用一個Singleton然后指向該Singleton中的其他資源)。 最近,依賴注入是最受歡迎的路徑,因為它也使單元測試變得更容易。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM