假设我有一个类Master
,它启动了我的程序,我有另一个类TerminalIO
,它具有与stdin和stdout交谈的函数和数据。然后,我从Master
实例化main()
对象。
在TerminalIO
方法的代码中,我如何访问Master
的属性和功能?
我问这个的原因是因为我的程序需要存储一些共享数据(包括枚举和常规变量),而我想知道一种有效的方法。我不太确定这是最好的方法,但它肯定比使用package
关键字并试图在模块级别存储“全局”数据或者什么来存储更好。
我认为值得注意的是,我还有很多其他对象也想要访问这些共享数据,所以简单的引用可能不是最好的想法。
答案 0 :(得分:0)
您必须在TerminalIO中获得对Master的引用。
您可以使用以下几种方法:
让Master成为单身人士,因此只有一个实例可以通过Master.instance访问,因此您将拥有类似Master.instance.masterProperty的内容。
在Master中有一个TerminalIO工厂方法,它构造一个TerminalIO并将一个Master引用传递给构造函数。