Java耦合 - 我应该依赖不同模块的服务或存储库层吗?

时间:2016-09-30 01:48:46

标签: java spring

我已经实现了CodeService,它将从代码表中检索国家/地区列表。

在我的ShippingService中,我想检查订单是否已发货到某个国家/地区。

在这种情况下,我应该使用CodeService还是CodeDAO来检索国家/地区列表。

public interface CodeService {
   public List<String> getCountryList();
}


@Service
public class CodeServiceImpl implements CodeService {

   @Autowired
   CodeDAO codeDao

   public List<String> getCountryList() {
       return codeDao.getCountryList();      
   }
}


@Service
public class ShippingServiceImpl implements ShippingService {

   @Autowired
   CodeDAO codeDao;

   @Autowired
   CodeSevice codeService;


   public void addOrder(Order order) {

     List<String> countries = codeService.getCountryList(); 
    //List<String> countries = codeDao.getCountryList();    

   }
}

1 个答案:

答案 0 :(得分:1)

如果您没有任何其他逻辑,例如在这种情况下,我认为最好直接调用DAO。

优点:始终调用服务,允许您从应用程序代码中完全分离DAO层。 缺点:您将为每个dao创建2个冗余类,它们只会将调用委托给DAO。

服务层应该用于获取数据的业务逻辑。例如:如果要向获取的国家/地区添加权限。

如果将来会向国家/地区添加其他逻辑,最好进行重构并创建服务。