Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 如何访问D中的对象父对象_Oop_D - Fatal编程技术网

Oop 如何访问D中的对象父对象

Oop 如何访问D中的对象父对象,oop,d,Oop,D,假设我有一个类,Master,它启动我的程序,我还有另一个类,TerminalIO,它有与stdin和stdout对话的函数和数据。然后从main()实例化Master对象 在TerminalIO方法中的代码中,如何访问Master的属性和功能 我之所以问这个问题,是因为我的程序需要存储一些共享数据(包括枚举和正则变量),我想知道一种有效的方法。我不确定这是不是最好的方法,但肯定比玩弄package关键字并试图在模块级存储“全局”数据或其他什么好 我认为值得注意的是,我还有许多其他对象也希望访问

假设我有一个类,
Master
,它启动我的程序,我还有另一个类,
TerminalIO
,它有与stdin和stdout对话的函数和数据。然后从
main()
实例化
Master
对象

TerminalIO
方法中的代码中,如何访问
Master
的属性和功能

我之所以问这个问题,是因为我的程序需要存储一些共享数据(包括枚举和正则变量),我想知道一种有效的方法。我不确定这是不是最好的方法,但肯定比玩弄
package
关键字并试图在模块级存储“全局”数据或其他什么好


我认为值得注意的是,我还有许多其他对象也希望访问这些共享数据,因此简单的引用可能不是最好的主意。

您必须在终端中获得Master的引用

您可以使用以下几种方法:

  • 让Master是一个单例,所以只有一个实例可以通过Master.instance访问,所以您将拥有类似Master.instance.masterProperty的内容

  • 在Master中有一个TerminalIO工厂方法,它构造一个TerminalIO并将主引用传递给构造函数


  • Master
    听起来像是一个神的物体。检查你的设计;您不能在构建时传入
    TerminalIO
    所需的值吗?