首页 > 解决方案 > How to get all classes used in decorator design pattern?

问题描述

So I'm implementing decorator design patter in java.

Overall I have this call which works correctly.

CrewMember crewMember = new Captain(new ChiefEngineer(new CrewMemberImpl()));

Now I have a question, how could I call a method as a crewMember from ChiefEngineer for example(which is not in the base interface).

What I would want ideally:

crewMember.methodFromChiefEngineerClass();

Maybe there is a way to get all related classed from crewMember? Using instanceof somehow? Or am I getting it wrong

标签: javadecorator

解决方案


在类中创建一个方法Captain来获取ChiefEngineer对象并使用它来调用ChiefEngineer类中的方法。

public class Captain {

  private final ChiefEngineer engineer;

  public Captain(final ChiefEngineer engineer) {
    this.engineer = engineer;
  } 

  public ChiefEngineer getChiefEngineer() {
    return this.engineer;
  }
}

然后做

crewMember.getChiefEngineer().methodFromChiefEngineerClass();

推荐阅读