如何在装饰器设计模式中使用所有 类?
How to get all classes used in decorator design pattern?
所以我在 java 中实现装饰器设计模式。
总的来说,我的这个调用工作正常。
CrewMember crewMember = new Captain(new ChiefEngineer(new CrewMemberImpl()));
现在我有一个问题,例如,如何从 ChiefEngineer
(不在基本接口中)中将方法调用为 crewMember
。
我理想中想要的是:
crewMember.methodFromChiefEngineerClass();
也许有办法从 crewMember 获取所有相关分类?以某种方式使用instanceof?还是我听错了
在 Captain
中创建一个代理方法,它调用包含的 ChiefEngineer
对象的相应方法。
public class Captain {
private final ChiefEngineer chiefEngineer;
public Captain(final ChiefEngineer chiefEngineer) {
this.chiefEngineer = chiefEngineer;
}
public void methodFromChiefEngineerClass() {
chiefEngineer.methodFromChiefEngineerClass();
}
}
在 Captain
class 中创建一个方法来获取 ChiefEngineer
对象并使用它来调用 ChiefEngineer
class 中的方法。
public class Captain {
private final ChiefEngineer engineer;
public Captain(final ChiefEngineer engineer) {
this.engineer = engineer;
}
public ChiefEngineer getChiefEngineer() {
return this.engineer;
}
}
然后做
crewMember.getChiefEngineer().methodFromChiefEngineerClass();
所以我在 java 中实现装饰器设计模式。
总的来说,我的这个调用工作正常。
CrewMember crewMember = new Captain(new ChiefEngineer(new CrewMemberImpl()));
现在我有一个问题,例如,如何从 ChiefEngineer
(不在基本接口中)中将方法调用为 crewMember
。
我理想中想要的是:
crewMember.methodFromChiefEngineerClass();
也许有办法从 crewMember 获取所有相关分类?以某种方式使用instanceof?还是我听错了
在 Captain
中创建一个代理方法,它调用包含的 ChiefEngineer
对象的相应方法。
public class Captain {
private final ChiefEngineer chiefEngineer;
public Captain(final ChiefEngineer chiefEngineer) {
this.chiefEngineer = chiefEngineer;
}
public void methodFromChiefEngineerClass() {
chiefEngineer.methodFromChiefEngineerClass();
}
}
在 Captain
class 中创建一个方法来获取 ChiefEngineer
对象并使用它来调用 ChiefEngineer
class 中的方法。
public class Captain {
private final ChiefEngineer engineer;
public Captain(final ChiefEngineer engineer) {
this.engineer = engineer;
}
public ChiefEngineer getChiefEngineer() {
return this.engineer;
}
}
然后做
crewMember.getChiefEngineer().methodFromChiefEngineerClass();