我正在制作一个GUI类来处理简单的任务,例如弹出一个窗口,用几个面板和其他组件填充它,没什么复杂的。
我想知道最佳做法是什么:
对GUI类中的所有内容进行静态调用
实例化我的GUI类的对象并调用该对象上的方法。 “通常”的方式。
请注意,我是Java的新手。如果我误解了一些我很乐意学习的东西。
谢谢!
答案 0 :(得分:1)
我建议在某处使用像“getInstance
”这样的静态方法,并在其他地方使用普通的OOP。如果您发现需要继承,多态或OOP的一些其他常用功能,那么在GUI内部使用静态可能会导致问题。
答案 1 :(得分:1)
我会采用第二种方法,即实例化我的GUI类的对象,因为静态方法在TDD方法方面不好。当我说不好意味着,静态方法很难模仿一段时间。
理想情况下,只要方法处理对象状态,就应该使用实例方法。在没有依赖于对象状态的情况下,应该在实用方法的情况下选择静态的。
但是当你将TDD带入画面并且存在级联静态方法时,有时在某些框架中编写junits很困难,比如单元和其他不支持模拟静态方法的其他框架,人们通常更喜欢实例方法,即使它们有同样很好的理由走向静态方法。
除了类级方法之外,你还失去了oops模型的其他功能,如多态
答案 2 :(得分:0)
我强烈建议你以“通常”的方式去做。虽然在可能的情况下使用静态方法(!)通常是一种很好的方法(外部化为util类,更好的测试可能性,更容易重用),但我不建议将它用于GUI。如果你想让你的GUI保持静态,那么它就像一个单例,从而使你有机会制作多个例如你的窗户,框架等。同时。
答案 3 :(得分:0)
您应该按需实例化GUI对象,并使用事件来交换消息或操作。静态与否 - 这取决于你。
答案 4 :(得分:0)
我总是使用线程安全单例来将事件从GUI的一部分委托给GUI的另一部分。
答案 5 :(得分:0)
这取决于。对于一个非常小的项目,可以在主类文件中创建所有内容并使每个组件都是静态的。但是,随着项目变得越来越大,你肯定想要添加其他类。
我目前正在开发一个项目,当我将所有GUI部件集成到主类中并使用其他类来处理数据之间的关系时,该行为会更好。无论如何:GUI应该独立于数据,最好通过使用类来处理复杂的数据。