2014-01-07 56 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

相关问题