如何组织代码轻松构建applet和应用程序?

时间:2012-12-28 08:47:46

标签: java applet refactoring

我正在使用Swing将Java中的客户端实现为应用程序。但现在我想从中构建Applet。重新设计/重构的最佳方法是什么,以便能够轻松地构建它们并使其保持干燥。

这是对main()

代码的简短提取
public class Client {
    public static final ScheduledExecutorService SERVICE;
    protected static String host;
    protected static int port;

    static {
         SERVICE = Executors.newSingleThreadScheduledExecutor();
         host =
         port = 
    }

    public static void main(String[] args) {
         //initalize netty

         //create user interface = JFrame in SwingUtilities.invokeLater

         connect();
    }

    public static void connect () {
         //connect using netty
    }

所以我将此文件作为单独的文件进行复制,将其从JApplet扩展并将main更改为init,以便可以运行,但当然它很难看,因为很多代码只是复制粘贴。

是否有通用解决方案如何重新设计?

UPD:

public class Client {
    public static void main (String[] args) {
        App app = new App();
        app.connect();
    }
}

public class Applet extends JApplet {
    public void init () {
        App app = new App();
        app.connect();
    }
}

并将所有初始化逻辑移至App

1 个答案:

答案 0 :(得分:3)

将大部分应用程序移除到不依赖顶级容器的类组。

这意味着,您可以根据需要重复使用/重新部署应用程序,而无需将自己链接到顶级容器。

然后,您需要一个“主”类用于桌面入口点和“applet”类。这将简单地构造应用程序主界面并将其附加到屏幕容器。

这是我们建议您永远不要直接从顶级容器覆盖,但是从简单容器扩展应用程序逻辑/ UI的原因之一,例如JPanel