现在有Business和User两个组件,BusinessDTO里面有一个属性是UserDTO。现在要保存一个Business,那么理应调用Business组件,然后再由Business组件去调用User组件,完成整个过程。问题是,我是否可用Business的Manager层去依赖User的Manager层呢?还是必须用Business的Manager层去依赖User的Service层呢?后者的话,由于Business的Service层,要进行DTO的转换,于是BusinessDTO就会被转为BusinessEntity,这时BusinessEntity进入Manager层。如果用BusinessEntity层的UserEntity去调用UserService,似乎不行,因为Service只接受DTO。但是改为前者的话,势必Service层要把DTO转换的责任交给Manager才行。请问怎样才算合理呢?

解决方案 »

  1.   

    “保存”这个逻辑应该是DTO就定义好的,跟各个具体类型没有关系。假如说我们在5月份开发User,6月份开发Bussiness(仅仅是假设),那么我们应该买一套选择市场上已经早在1、2年前就已经比较成熟的DTO,或者如果自己开发的话早在5月份之前好几个月自己就已经开发这个DTO了。这就是面向对象软件工程的特点。
      

  2.   

    不仅仅是Bussiness、User这两个类型,你的DTO研究应该针对成百上千中后继来预先设计。在Bussiness处理过程中,它不用管User实例的具体类型,拿出它的DTO接口操作即可。
      

  3.   

    谢谢大家,继续学习ing。可能是我思路有点不一样?我现在是Service是对外,Manager处理逻辑,DAO存取数据。DTO负责在界面和Service间存取数据,Entity在Service层以内活动。但是DTO和Entity本身是不包含存取逻辑的,逻辑由Manager来负责。