service层在Jfinal中严格意义上需要吗

进击的代码 发布于 2014/03/04 11:12
阅读 2K+
收藏 1

@JFinal 你好,想跟你请教个问题:Jfinal开发的时候需要service层吗?同事看了我加的service以后说只是个烟雾弹效果不是真正意义上的service,但是个人强迫症总喜欢搬来MVC那一套。

想请问下詹大,service层在Jfinal中严格意义上需要吗?

加上应该也没啥影响吧?我有些service不会和数据库打交道,也放在service层,所以干脆就加上了service。


@缪斯的情人   

加载中
1
JFinal
JFinal

    视情况而定,如果项目规模大并且复杂度高可以引入 Service 层,否则所有业务写在 Model 中就可以,称之为充血领域模型。

     引入 Service 层也很方便,加个 XxxService ,然后在 Controller 使用就可以,如果 Service 是无状态的,可以在 Controller 中这样:

public class MyController extends Controller {
  private static final MyService myService = new MyService();

  public void index() {
    XxxType result = myService.doSomthing(getPara());
    setAttr("result", result);
    render("xxxx.html");
  }
}
   在引入 Service 层时,有些业务写在 Model 中更合理,如对于订单类 Order 来说,有个业务需要判断该定订单是否已经支付,写在Service 层与 Model 层后在Controller 中调用的形式分别如下:
// 写在Model中时 Controller 对其的调用
if (order.isPaid())
  doSomeThing();

// 写在Service 中时Controller 对其的调用
if (orderService.isPaid(order))
  doSomeThing();

  上面这个判断 order 是否已支付写在 Model 中比较好,而对于跨多个 Model的业务写在 Service 比较好,当然前提是引处了 Service 层

进击的代码
进击的代码
回复 @Brin想写程序 : 这个暂时不能肯定,规范也不是说改就改的,当然,只要适合自己的规范就是最好的规范了
Brin想写程序
Brin想写程序
回复 @进击的代码 : 感觉现在controller的代码,在现有的所谓云计算体系结构下,存在意义不大啊?service能否进一步吞并controller呢?如果service的框架,给予service的权限控制,事务处理提供基础,是否只在service里面写入一些controller嗲吗,真正的显示逻辑交给前端的js?
进击的代码
进击的代码
解答的很清楚~我的是小项目,我一直就是这么引入service的,因为不喜欢在controller里面调用model,那我就留着service吧,我这有很多操作是跨model的,所以个人觉得好处还是很多的尤其是在项目模块多了以后,十分感谢~~
0
Brin想写程序
Brin想写程序

现在的service层感觉还是贫血和缺乏规范。。一方面干了model的不少活,另一方面,service最好能直接发布给用户。而不是需要在axis里面在做一些工作。

而且传统的mvc模式里面是没有service这一层的。。service到底是什么呢?

如果在java下 service=servlet?单词很像啊?

0
Vity
Vity
个人私活倾向 胀血模式
0
stu51
stu51
我都写在model里了,JFinal称之为充血勃起模型。
IT猫
IT猫
勃起模式,哈哈
0
进击的代码
进击的代码
@Vity @stu51 哈哈,这个名字我喜欢,好霸气豪爽啊
返回顶部
顶部