2015-02-06 72 views
1

這甚至可能嗎?這裏是我目前正與代碼的重要部分:從接口訪問另一個類中的對象?

public class Bag : IBag 
{ 
    public IRack NewRack() { ...some code here...} 
} 

public class Rack : IRack 
{ 
    public void SwapAllTiles() { ...can I access the Bag object here somehow?... } 
} 

我的問題是,我可以通過IRack接口訪問當前包對象在機架類,而不從袋類派生,像不知何故?我現在正在工作的方式是我從Bag中派生出來,並且我可以使用getter來訪問當前包的實例,但這看起來不太好。會使用靜態實例更好嗎?

注意:我不想在我的Rack類中放置一個私人Bag對象,它們在技術上是分開的(它基本上是一個拼字塊包和一個拼字遊戲機架,我需要機架可以引用或訪問但是我不希望每個機架都有自己的包。)

回答

2

將您的Bag對象作爲參數傳遞給Rack對象中的某個方法。

如果你不想在成員變量中持有引用。但是如果你想持久訪問它,你確實需要一個私有成員。如果沒有私人成員參考,則只能在方法的整個生命週期中訪問它。

public class Rack : IRack 
{ 
    public void SwapAllTiles(IBag bag) { ...Now you can access it... } 
} 
+0

類名'bag'和'Rack'表示他應該可能用於構造函數/私有成員方法。 – dotNET 2015-02-06 15:55:40