【发布时间】:2011-09-02 13:27:03
【问题描述】:
我从我的前任那里继承了一个庞大的系统,我开始了解它是如何工作的,但我不明白为什么。
它在 java 中并使用接口,应该添加一个额外的层,但它们添加了 5 或 6。
当按下用户界面按钮并调用一个看起来像这样的函数时,它是这样的
foo.create(stuff...)
{
bar.create;
}
bar.create 完全相同,只是它调用foobar.creat,然后又调用barfoo.create。在找到访问数据库的函数之前,它会遍历 9 个类。
据我所知,每个额外的函数调用都会产生更多的性能成本,所以这对我来说似乎很愚蠢。
同样在foo.create 中,所有变量都经过错误检查,这是有道理的,但在其他所有调用中,错误检查都会再次发生,看起来就像剪切和粘贴代码。
这似乎很疯狂,因为一旦检查了变量就不需要重新检查,因为在我看来这只是浪费处理器周期。
这是我第一个使用 java 和接口的项目,所以我只是对发生的事情感到困惑。
谁能解释为什么系统会这样设计,它有什么好处/缺点,如果它不好我可以做些什么来改进它?
谢谢。
【问题讨论】:
-
根据您的描述,这听起来像是界面矫枉过正。但是,如果不仔细查看所有代码,很难确定这是一个问题。如果某些方法只是“通过”,而其他方法在调用链中实现得更快,那么这种布局仍然有意义。但是,多级错误检查可能不是一个好主意,除非它们在生产中被关闭。
-
有没有可能问问做这件事的人?也许他可以给你一些解释或提示。
-
@Paul W 他们都只是通过,没有早下车。您认为可以将初始调用更改为更远的地方以跳过一些但仍然使用主界面吗?
-
@aav 我所得到的只是转到此函数中的这一行并更改此变量,对于它的工作方式非常缺乏创意。
-
@Skeith 那么,该说什么.. 如果您必须在很长一段时间内“使用”该软件并对其进行维护-也许您应该开始考虑(和计划)简化的可能方法它(清理、重构、消除不必要的复杂性)
标签: java architecture interface