泽西从另一个资源调用一个资源来重用代码

时间:2011-10-23 13:08:58

标签: java rest resources jersey

我正在尝试重构我的代码以重用现有代码,但是想要了解如何使用REST资源(在这种情况下为Jersey)以最佳方式完成此操作。

我有一个处理域名的资源。此资源中的此类方法包括获取域,获取多个域以及发布批量获取(使用GET的数量太多)。

但是,我也有一个对URL做同样的资源。除了我在这里做的是从URL中提取域并有效地执行与DomainResource类相同的逻辑,因为一旦我从URL获得域,我需要执行完全相同的查找。但是,我没有重复使用现有的DomainResource方法,而是在我的URLResouce类中复制并调用相同的方法。

因此,在这种情况下更好地重复并保持资源分离,或者是否可能(糟糕/良好的预处理)从另一个资源调用一个资源,在这种情况下,URLResouce会委托给DomainResource?这听起来怎么样?

2 个答案:

答案 0 :(得分:0)

公共代码应该在实用程序类中。您的每个资源(我认为您使用@GET注释的方法)通常不会相互调用。我会在实用程序类中放置一个fetchDomains方法。然后,用于获取域的控制器/服务/资源方法将直接调用该实用方法,并且用于从URL获取域的控制器/服务/资源方法将首先提取域然后调用该实用方法。

答案 1 :(得分:0)

So is it better to have duplication in this case

不,无论如何因为重复会降低你的oops概念。所以请尽量将公共代码保存在单独的类中。

相关问题