Design patterns 需要好的设计模式来延迟初始化服务的配置=状态

Design patterns 需要好的设计模式来延迟初始化服务的配置=状态,design-patterns,Design Patterns,在我当前的设计中,有一些类继承自抽象的IHaveHadoopConfig,它在getConf中使用特定于该类的参数对配置进行延迟初始化,然后将其存储在成员变量conf中 我不想从这个类继承,而是从其他函数类(copyTask、dostuffstask等)继承,我不想多重继承,我想要另一个服务类,它将配置注入到我的类中 但这意味着我必须在该服务的所有使用者中复制lazy init的代码,不是吗 为什么任务类不能从抽象类继承?因为这需要多重继承。我也不认为这是正确的层次结构,配置业务只是一项服务,C

在我当前的设计中,有一些类继承自抽象的
IHaveHadoopConfig
,它在
getConf
中使用特定于该类的参数对配置进行延迟初始化,然后将其存储在成员变量
conf

我不想从这个类继承,而是从其他函数类(copyTask、dostuffstask等)继承,我不想多重继承,我想要另一个服务类,它将配置注入到我的类中


但这意味着我必须在该服务的所有使用者中复制lazy init的代码,不是吗

为什么任务类不能从抽象类继承?因为这需要多重继承。我也不认为这是正确的层次结构,配置业务只是一项服务,
CopyHadoopFileTask
不是一项
INeedHadoopConfigTask
,而是一项
CopyTask
,它需要一些hadoop配置服务。也许您可以调整代码以使用服务定位器模式。