Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否将GUI设置为静态_Java_User Interface - Fatal编程技术网

Java 是否将GUI设置为静态

Java 是否将GUI设置为静态,java,user-interface,Java,User Interface,我正在制作一个GUI类来处理简单的任务,比如弹出一个窗口,用几个面板和其他组件填充它,没有什么复杂的事情 我想知道最佳做法是什么: 对GUI类中的所有内容进行静态调用 实例化GUI类的一个对象并调用该对象上的方法。“通常”的方式 请注意,我是Java新手。如果我误解了什么,我会很高兴知道的 谢谢 我强烈建议你按“常规”的方式做。虽然在可能的情况下使用静态方法(!)通常是一种很好的方法(外部化为util类、更好的测试可能性、更容易的重用),但我不建议将其用于GUI。如果你想让你的GUI成为静态

我正在制作一个GUI类来处理简单的任务,比如弹出一个窗口,用几个面板和其他组件填充它,没有什么复杂的事情

我想知道最佳做法是什么:

  • 对GUI类中的所有内容进行静态调用

  • 实例化GUI类的一个对象并调用该对象上的方法。“通常”的方式

请注意,我是Java新手。如果我误解了什么,我会很高兴知道的


谢谢

我强烈建议你按“常规”的方式做。虽然在可能的情况下使用静态方法(!)通常是一种很好的方法(外部化为util类、更好的测试可能性、更容易的重用),但我不建议将其用于GUI。如果你想让你的GUI成为静态的,它会像一个单例一样,这样你就有机会同时创建多个实例,例如你的窗口、框架等。

你应该根据需要实例化一个GUI对象,并使用事件来交换消息或操作。静态或不静态-这取决于你

我建议在某个地方使用一个静态方法,比如“
getInstance
”,在其他地方使用普通的OOP。如果您发现需要继承、多态性或OOP的其他一些常见功能,那么在GUI中所有内容都是静态的可能会在以后导致问题。

我将使用第二种方法,即实例化GUI类的对象,因为静态方法在TDD方法中并不好。当我说不好时,这意味着静态方法有时很难模仿

理想情况下,只要方法处理对象的状态,就应该使用实例方法。如果实用程序方法不依赖于对象的状态,则应选择静态方法

但是,当您将TDD引入图中,并且存在级联静态方法时,有时在一些框架中编写junits很困难,例如unitils和其他各种框架不支持模拟静态方法,人们通常更喜欢实例方法,即使他们有同样好的理由使用静态方法


除了类级方法之外,oops模型的其他功能(如多态性)也没有了。

我总是使用线程安全的单例来将事件从GUI的一个部分委托给GUI的另一个部分。

这取决于具体情况。对于一个非常小的项目,可以将主类文件中的所有内容都设置为静态。但是,随着项目变得越来越大,您肯定会希望添加其他类


我目前正在从事一个项目,当我将所有GUI部件集成到主类中并使用其他类来处理数据之间的关系时,该项目的性能会更好。不管怎样:GUI应该独立于数据,最好使用类来处理复杂的数据。

尝试了解静态,然后根据您的要求进行设计。您应该避免使用静态窗口,而是使用类实例、事件、,方法等。如果你问的话,这是最佳实践me@Goatcat面向对象编程