java - 设计实现代码: static or dynamic?

标签 java static program-entry-point

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

我想做的是将 main() 留空,只调用一个方法调用我的实际实现类(代码是非静态的), 在我的实现类中制作所有内容 private static

两者有任何问题吗?我倾向于将所有内容都设为 private static

最佳答案

making everything in my implementation Class private static

这与 OOP 方式相矛盾,如果你的项目只需要函数过程,而不依赖于对象和消息,这清楚地表明你的某些东西在你的在面向对象编程方面,设计是非常错误的。

在 OOP 设计中使用静态方法是不好的,因为它不允许您覆盖它们并使用重要的 dynamic dispatch 属性,它会大大降低代码的可重用性。

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

尝试查看 OOP 教程,尝试思考如何使您的项目更加面向对象。一开始它可能很难并且看起来多余,但是一旦您习惯了它 - 您将能够解锁 Java 最重要的方面之一 - 作为 OOP 语言,并且您不会“用 Java 编写 C 程序”。

关于java - 设计实现代码: static or dynamic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29046347/

相关文章:

java - 哪个SSL确认

java - 使用 java.util.scanner.hasNext(regex) 获取整行

java - 每次字符串与字符串数组中的元素匹配时,尝试向变量添加计数

java - Android 在加载时显示启动画面

Java 等效于以下静态只读 C# 代码?

java - java中静态字段在哪里初始化?

macros - 是否可以使用 Rust 的宏/语法扩展来执行静态原语的计算?

c - C 语言中 main(++i) 将返回什么

c++ - C++ 中 main 的正确声明是什么?

c - 如何根据命令行参数的文件扩展名执行特定操作