1

我们有一个 GWT + GAE 应用程序,情况如下:

我们有两种不同的表格/页面:

  1. 注册为献血者
  2. 注册为眼睛捐赠者

到目前为止,我们有两个不同的入口点类,它们调用两个不同的服务,一个实现为 RegisterBloodDonorServiceImpl,另一个实现为 RegisterEyeDonorServiceImpl。

现在,我们想要实现一个功能,我们想要让献血者也可以注册为眼睛捐赠者。由于数据几乎相同,因此我们不希望最终用户填写两个表格,而只需提供一个复选框即可在献血者表格上实现相同的功能。

那么,现在的问题是我们应该如何实现它?

  1. 献血者数据在服务中持久化后,我们应该从 RegisterBloodDonorServiceImpl 内部调用 RegisterEyeDonorServiceImpl 吗?如果是,那么我们不确定如何从另一项服务调用一项服务?

  2. 我们应该在入口点实现类中一个接一个地调用两个服务吗?

  3. 有更好的主意吗?

4

1 回答 1

2

在我们的项目中有代码需要从多个服务调用的地方,我们发现最好将代码从我们的*ServiceImpl类中提取到它自己的类中。然后每个服务可以根据需要保存自己的此类实例。

因此,在您的情况下,我建议使用名称创建一个类,例如EyeDonorServiceCalls使用registerEyeDonor. RegisterEyeDonorServiceImpl将保留此类的实例并registerEyeDonor在收到适当的服务调用时调用。RegisterBloodDonorServiceImpl如果勾选了相应的复选框,将保留另一个实例并调用registerEyeDonor作为献血者登记的一部分。

于 2012-06-03T23:25:49.880 回答