设计实现代码:静态还是动态?

时间:2015-03-14 06:58:51

标签: java static main

在为我的类设计测试或实现代码时,我喜欢将代码拆分为可读性和功能性的方法。但是,鉴于main()是静态的,这使得从静态方法到非静态方法来回传递数据和控制变得很麻烦。

我想做的是将main()留空,对我的实际实现类(代码是非静态的)进行一次方法调用, 在我的实现类private static

中创建所有内容

两者都有问题吗?我倾向于制造一切private static

3 个答案:

答案 0 :(得分:3)

  

在我的实现中创建所有类私有静态

这与OOP方式相矛盾,如果您的项目只需要功能过程并且不依赖于对象和消息,则可以清楚地表明面向对象编程时,设计是非常错误的。

在OOP设计中使用静态方法是不好的,因为它不允许您覆盖它们并使用重要的 dynamic dispatch 属性,并且它允许更少的代码重用性

你的思维方式似乎是一个必要的语言程序员(C?),如果你真的想成为一个更好的java程序员,你应该使用更好的OOP设计。确保您拥有相互交互的类,并以组织方式相互发送消息(调用方法)。

尝试查看OOP教程,尝试思考如何使项目更加面向对象。一开始可能很难并且看起来多余,但是一旦你习惯了它 - 你将能够解开java最重要的一个方面 - 作为OOP语言,你就赢了#34; java中的程序C"。

答案 1 :(得分:0)

您可以尝试调用非静态方法,如下所示:

public static void main(..) {
   ..
   MyClass clazz = new ...;//create object
   clazz.myMethod();//call method on object itself rather than making all methods static.
}

答案 2 :(得分:0)

我理解您对混淆的疑虑,我在过去使用此模式时完全避免使用静态方法,并降低使用过的语言功能的复杂性

public class Main {
    public static void main(String[] args) {
        new Main().m(args);    
    }
}

但在Java中,静态方法是一个重要的设计元素(Java: when to use static methods)。你会在API中找到静态方法。所以你也应该按预期使用它们。