了解这种架构

时间:2011-05-26 12:20:33

标签: java architecture interface

我从我的前任那里继承了一个庞大的系统,我开始明白它是如何运作的,但是我无法理解为什么。

它在java中并使用接口,它们应该添加一个额外的层,但它们会添加5或6。

以下是按下用户界面按钮并调用类似

的功能时的情况
foo.create(stuff...)
{
    bar.create;
}

bar.create完全相同,只是它调用了foobar.creat,然后调用barfoo.create。在找到访问数据库的函数之前,这会持续9个类。

据我所知,每个额外的函数调用会产生更多的性能成本,所以这对我来说似乎很愚蠢。

同样在foo.create所有变量都进行了错误检查,这是有道理的,但在每次其他调用中,错误检查再次发生,它看起来像剪切和粘贴代码。 这似乎是疯狂的,因为一旦变量被检查,一旦它们不需要重新检查,因为在我看来这只是处理器周期。

这是我的第一个使用java和接口的项目,所以我只是对最近发生的事情感到困惑。

任何人都可以解释为什么系统是这样设计的,它有什么好处/缺点以及如果它不好我可以做些什么来改进它?

谢谢。

3 个答案:

答案 0 :(得分:2)

我建议您查看设计模式,看看它们是否在项目中使用。最初搜索工厂和抽象工厂等词。只有这样才能正确理解先前开发者的意图。

此外,通常,除非您在资源受限的设备上运行,否则不必担心额外调用或间接级别的成本。如果它有助于您的设计,使其更容易理解或开放扩展,那么额外的电话是值得的。

但是,如果代码中有复制粘贴,那么这不是一个好兆头,开发人员可能不知道他在做什么。

答案 1 :(得分:1)

很难理解您的软件到底做了什么。也许它甚至有意义。但我看到一些项目由一些“设计模式疯子”完成。看起来他们想展示他们对各种代表,间接等的了解。也许这是你的情况。

答案 2 :(得分:1)

我不能在没有仔细检查的情况下评论架构,但一般来说,跨不同层的服务分离是个好主意。这样,如果您更改一个服务的实现,其他服务保持不变。但是,只有在不同层之间存在松散耦合时才会出现这种情况。

此外,通常情况下,每个服务处理与其提供的服务类型有关的异常,而将其余服务留给其他人。这也允许我们减少服务层之间的耦合。