多个model共用一个service可以吗

07-11-29 ccj
    

本来根据对jdon的学习,理解为一个model对应一个service,但在实际开发中,涉及到在写A时,需要对B进行一次更新操作。这样一来,在A的service里调用B的DAO,不好写,也违反了解偶的原则,于是问了下朋友,他说一个业务对应一个service,而不是一个model对应一个service,于是写成了这样,不知道是否对。

<model key="id" class="sample.model.User">

<actionForm name="userForm" />

<handler>

<service ref="buyService">

<getMethod name="findUser" />

<createMethod name="createUser" />

<updateMethod name="updateUser" />

<deleteMethod name="deleteUser" />

</service>

</handler>

</model>

<model key="id" class="sample.model.Order">

<actionForm name="orderForm" />

<handler>

<service ref="buyService">

<getMethod name="findOrder" />

<createMethod name="createOrder" />

<updateMethod name="updateOrder" />

<deleteMethod name="deleteOrder" />

</service>

</handler>

</model>

    

banq
2007-11-30 08:21

>在A的service里调用B的DAO,不好写,也违反了解偶的原则

可以这样,不用担心耦合,因为是调用B的DAO接口,接口耦合是可以的,这就是面向接口编程,再通过Jdon框架的IOC解决了B的DAO具体类创建。

Model和service不一定是一一对应的,service也不是放业务逻辑的,业务逻辑主要需要在Domain Model,可见JiveJdon3源码,messageService中涉及业务代码很少,类似一个装配器,核心业务都在Model包下。