2015-09-04 73 views
0

我目前正在開發一個菜單結構,其中包括一個 主類,一個Menu類和一個MenuEntry類。正在調用抽象方法中常用的方法嗎?

Menu類是抽象的,但只有一個抽象方法。 MenuEntry也有一個抽象方法。

主類有像「關機」的方法,「pushState的」「popState」等

它是好/通用調用菜單/ MenuEntry的instatiation內關斷()從主類?

public class Main 
{ 
    public void init() 
    { 
    Menu m = new Menu() 
    { 
     public void abortAction() 
     { 
     shutDown(); 
     } 
    }; 
    m.addEntry(new MenuEntry() 
    { 
     public void activate() 
     { 
     start(); 
     } 
    }); 
    } 
    public void shutDown() 
    { 
    //cleanup etc. 
    } 

    public void start() 
    { 
    //start here. 
    } 
    /* 
    * other methods 
    */ 


} 

public abstract class Menu 
{ 
    //... 
    void addEntry(MenuEntry e) 
    { 
    //... 
    } 
    public abstract void abortAction(); 
} 




public abstract class MenuEntry 
{ 
    //... 
    public abstract void activate(); 
} 

這多少看起來醜陋,但。

+0

對你的標題的評論:抽象方法(與'abstract'關鍵字的方法)沒有任何代碼(不允許,如果你嘗試編譯失敗),所以你不能做任何事情。 – Andreas

+0

當然,但我不知道如何命名它。 – Raildex

回答

0

如果你想在shutDownstart這是完全正常的代碼重用,

但是,不要指望有這些方法裏面的菜單或MenuEntity的內部狀態(這些方法將有機會獲得的狀態Main類),除非您傳遞這些方法的引用。

除此之外,我認爲這很好。但這取決於你想做什麼,