门面层之间是否有依赖关系?

时间:2014-03-22 02:28:27

标签: java spring spring-mvc

我的应用程序有以下层: - 门面 - 业务对象 - 存储库(Spring JPA数据)

让我们假设以下课程:

@Component
public class MessageFacade implements MessageService {
  @Autowired
  private GarageBO garageBO;
  @Autowired
  private MessageBO messageBO;

  public void createFeedbackMessage(...) {
    messageBO.createFeedbackMessage(...);
    garageBO.createFeedback(...);
  }
}

@Component
public class ServiceOrderFacade implements ServiceOrderService {     
  @Autowired
  private ServiceOrderBO serviceOrderBO;
  @Autowired
  private MessageBO messageBO;
  @Autowired
  private GarageBO garageBO;

  public void createServiceOrder(...) {
    serviceOrderBO.createServiceOrder(...);
    messageBO.createFeedbackMessage(...);
    garageBO.createFeedback(...);
  }
}

在MessageFacade中观察createFeedbackMessage方法我有:
1) MessageBO中的createFeedbackMessage方法,负责创建包含反馈调查的电子邮件 LINK ;
2) garageBO中的createFeedbackMessage方法使用问题和响应创建反馈 ENTITY ;

在ServiceOrderFacade中的createServiceOrder方法中,我需要调用ServiceOrderBO的方法,之后我需要在MessageFacade中使用相同的createFeedbackMessage方法行为。

在ServiceOrderFacade - >之间创建依赖关系是一个坏主意吗? MessageFacade?

代码如下:

@Component
public class ServiceOrderFacade implements ServiceOrderService {     
  @Autowired
  private ServiceOrderBO serviceOrderBO;
  @Autowired
  private MessageBO messageBO;
  @Autowired
  private GarageBO garageBO;

  public void createServiceOrder(...) {
    serviceOrderBO.createServiceOrder(...);
    getMessageService().createFeedbackMessage(...);
  }
}

1 个答案:

答案 0 :(得分:1)

如果您认为DRY(don't repeat yourself)中有问题。你可以创建另一个层,就像一个普通的,它是业务对象层的依赖,并且将创建一次,如果你想要

将在你的整个BO中使用