【发布时间】:2011-05-13 22:42:31
【问题描述】:
最近有人看了我的代码并评论说它太程序化了。需要明确的是,他们看到的代码并不多 - 只是一个清楚地概述了应用程序中所采取的逻辑步骤的部分。
if(downloadFeeds(ftpServer, ftpUsername, ftpPassword, getFtpPathToLocalPathMap())) {
loadDataSources();
initEngine();
loadLiveData();
processX();
copyIds();
addX();
processY();
copyIds();
addY();
pauseY();
resumeY();
setParameters();
}
然后这些不同的方法会创建一大堆不同的对象,并根据需要在这些对象上调用各种方法。
我的问题是 - 是否有一段代码清楚地驱动您的应用程序,例如这样,表明过程编程,如果是这样,那么实现相同结果的更面向对象的方法是什么?
非常感谢所有 cmets!
【问题讨论】:
-
我们有时似乎忘记了 OOP 的借口是更好的可维护性。所以问问你自己,你的代码对其他从未见过的人来说是否清楚,他们是否很难做出改变。可以在您的环境中的其他地方使用此代码并稍加修改吗? (如果您要将此模块剪切并粘贴到其他地方,也许 OO 可以在这里提供帮助)...在不了解您的应用程序以及所有功能的含义的情况下,如果有必要担心的话,很难说清楚。
-
这一切都归结为可重用性。我想这都是在一些 main() 方法中,所有这些方法都是静态的。现在,如果您必须更改某些内容,也许您有一个额外的 Z 字段,现在您需要添加进程 Z 和恢复 Z 等等。对于您的代码,如果不进行重大重构,将很难做到这一点。如果你走的是面向对象的路线,那么它就像启动另一个类来处理它一样简单。这就是 OOP 的力量。
-
我感觉有很多全局变量。此代码 100% 无法测试。
标签: java oop procedural-programming