所以现在,我有一个Preprocessor
生成一堆实例变量映射的Service
类,还有一个有setPreprocessor(Preprocessor x)
方法的类,这样Service
该类的实例就能够访问预处理器生成的映射。
目前,我的Service
班级需要连续调用三个方法;为简单起见,我们称它们executePhaseOne
为 、executePhaseTwo
和executePhaseThree
。这三个方法中的每一个都实例化/修改Service
实例变量,其中一些是指向Service
实例Preprocessor
对象的指针。
我的代码现在有这个结构:
Preprocessor preprocessor = new Preprocessor();
preprocessor.preprocess();
Service service = new Service();
service.setPreprocessor(preprocessor);
service.executePhaseOne();
service.executePhaseTwo();
service.executePhaseThree();
为了更好地组织我的代码,我想将每个executePhaseXXX()
调用放在它自己单独的子类中Service
,并为父类中的所有阶段保留公共数据结构Service
。然后,我想execute()
在父类中有一个方法Service
可以连续执行所有三个阶段:
class ServiceChildOne extends Service {
public void executePhaseOne() {
// Do stuff
}
}
class ServiceChildTwo extends Service {
public void executePhaseTwo() {
// Do stuff
}
}
class ServiceChildThree extends Service {
public void executePhaseThree() {
// Do stuff
}
}
编辑:
问题是,我如何在父类中编写我的execute()
方法?Service
我有:
public void execute() {
ServiceChildOne childOne = new ServiceChildOne();
ServiceChildTwo childTwo = new ServiceChildTwo();
ServiceChildThree childThree = new ServiceChildThree();
System.out.println(childOne.preprocessor); // prints null
childOne.executePhaseOne();
childOne.executePhaseTwo();
childOne.executePhaseThree();
}
但是,我childOne
的childTwo
, 和childThree
对象无法访问preprocessor
存在于父类中的实例变量Service
......我该如何解决这个问题?