从接口访问另一个 Class 中的对象?
Access an Object in Another Class from an Interface?
这可能吗?以下是我目前正在使用的代码的重要部分:
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?... }
}
我的问题是,我可以访问 Rack class 中的当前 Bag 对象而不从 Bag class 派生,就像通过 IRack 接口一样吗?我现在的工作方式是从 Bag 派生 Rack,我可以使用 getter 来访问当前包的实例,但这看起来不是很好的形式。使用静态实例会更好吗?
注意:我不想在我的机架中放置一个私人 Bag 对象 class,它们在技术上是分开的(它基本上是一个拼字游戏包和一个拼字游戏架。我需要机架能够参考或访问袋子中的瓷砖,但我不希望每个架子都有自己的袋子。)
将 Bag 对象作为参数传递给 Rack 对象中的方法。
如果您不想,则不必在成员变量中保留对它的引用。但是如果你想持久访问它,你确实需要一个私有成员。如果没有私有成员引用,您将只能在方法的生命周期内访问它。
public class Rack : IRack
{
public void SwapAllTiles(IBag bag) { ...Now you can access it... }
}
这可能吗?以下是我目前正在使用的代码的重要部分:
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?... }
}
我的问题是,我可以访问 Rack class 中的当前 Bag 对象而不从 Bag class 派生,就像通过 IRack 接口一样吗?我现在的工作方式是从 Bag 派生 Rack,我可以使用 getter 来访问当前包的实例,但这看起来不是很好的形式。使用静态实例会更好吗?
注意:我不想在我的机架中放置一个私人 Bag 对象 class,它们在技术上是分开的(它基本上是一个拼字游戏包和一个拼字游戏架。我需要机架能够参考或访问袋子中的瓷砖,但我不希望每个架子都有自己的袋子。)
将 Bag 对象作为参数传递给 Rack 对象中的方法。
如果您不想,则不必在成员变量中保留对它的引用。但是如果你想持久访问它,你确实需要一个私有成员。如果没有私有成员引用,您将只能在方法的生命周期内访问它。
public class Rack : IRack
{
public void SwapAllTiles(IBag bag) { ...Now you can access it... }
}