hjxyy 2009-01-14 11:40
浏览 437
已采纳

service层处理的内容?

我一直对j2ee里面service层所处理的内容不太理解,它调用DAO,再提供出方法给action使用.
如今有这样一个业务:在一个论坛系统中,用户可以对一条贴子做"顶"、"踩"操作.在数据库中有字段"up"和"down"用于记数。
以于这个业务我有三种设想:
1. Action里调用service层查询pojo对象的方法拿到该条记录后将up属性加1后再调用service层的update(pojo)的方法。
2. Action里调用service层里一个叫up(int id)的方法,该方法的实现是调用DAO的up方法(该方法会将up字段加1).
3. Action里调用service层里一个叫up(int id)的方法,该方法的实现是调用DAO的查询pojo对象方法,再更新pojo的up属性,再调用DAO的更新pojo对象的方法.

请大家帮我分析一下哪种设想才是真正service的设计模式,或者都不是...能把理由说清楚点就最好了,哪有service的详细介绍的能推荐一下吗?

  • 写回答

4条回答 默认 最新

  • Candyut 2009-01-14 11:54
    关注

    假设你的POJO叫Topic

    方式一:在POJO里定义
    给Topic加两个方法:
    [code="java"]
    public void goUp(){
    this.up++;
    }
    public void goDown(){
    this.down++;
    }
    [/code]
    然后
    [code="java"]
    TopicService tService = ...;
    Topic topic = tService.get(id);
    topic.goUp();
    tService.update(topic);
    [/code]

    方式二:你也可以在Service里定义
    [code="java"]
    public void goUp(Topic topic){
    topic.setUp(topic.getUp()++);
    this.save(topic);
    }
    [/code]

    我个人喜欢第一种。。。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 如何使用micpyhon解析Modbus RTU返回指定站号的湿度值,并确保正确?
  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理