我大概能明白你的意思,你说的是将界面的实现和界面的行为分离开来。我也曾经遇到过此类问题,以下是我的一些建议:
  1、将界面元素比如菜单单独封装成一个类中,比如EditorMenuBar;
  2、将各个Action单独封装在不同的类中,然后使用一个统一的类进行管理,比如EditorActions;
  3、如何将Action添到EditorMenuBar中这个问题比较好解决,在EditorMenuBar初始化的时候就将EditorActions的一个实例传递进去;
  4、最重要的是如何解决Action构建的时候需要需要主程序的一些信息,这些信息该如何取得,我认为应该加入一个ApplicationController的类通过这个类可以取得主程序的实例,如果需要还可以添加一个ApplicationContext的类,在这个类中可以访问程序的一些上下文相关的信息。然后在Action构造的时候将这些类的实例传递进去。
以上是我在实际编程时的一些感受。更详细的信息可以询问我。