簡體   English   中英

如何獲取裝飾器設計模式中使用的所有類?

[英]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 class 中創建一個方法來獲取ChiefEngineer object 並使用它來調用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();

Captain中創建一個代理方法,調用包含的ChiefEngineer object 的相應方法。

public class Captain {
    private final ChiefEngineer chiefEngineer;

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

    public void methodFromChiefEngineerClass() {
        chiefEngineer.methodFromChiefEngineerClass();
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM