调用抽象方法中的方法常用吗?

时间:2015-09-04 21:53:47

标签: java abstract

我目前正在开发一个带有的菜单结构 主类,Menu类和MenuEntry类。

Menu类是抽象的,但只有一个抽象方法。 MenuEntry也有一个抽象方法。

Main类有" shutdown"," pushState"等方法。 " popState"等

在Menu / MenuEntry的instatiation中从主类调用shutDown()是否正常/常用?

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();
}

但它看起来确实很丑陋。

1 个答案:

答案 0 :(得分:0)

如果您想重用shutDownstart中的代码,这非常好,

但是不要期望在这些方法中有Menu或MenuEntity的内部状态(这些方法可以访问Main类的状态),除非你传递对这些方法的引用。

除此之外,在我看来这很好。但这取决于你想做什么,