service 层只是抽取出了一层,不然把所有的业务逻辑写在controller里,将代码全部平面展开,既杂乱又不分层,这又不面向对象,也不利于开发和维护。按照另外的说法,对于后期分布式的展开也是灾难。ssh以前的项目,抽取一个service层道理应该也是如此。再抽取多一个dao层也是为了应付数据库连接的变更(虽然几乎很少遇到需要变更数据表的)。根据项目来拆分层次吧。可能 service 层,dao 层,如果项目需要,进行适当的增加层次我觉得也是可行的。
@Lg 如果要写工厂模式的话,那你可以写一个考虑所有 service 的工厂,不然还是用static 变量的形式,否则也只是多添加一个类而已。 业务写在 Model 里不是不行。我刚用 jfinal 的时候就没有把业务写在 model 里,一来是 bean 定义会被破坏,二来是 now Model的时候会产生额外的负担。所以我不建议这样做。你把业务逻辑写在 service 里面吧。这样好点。(个人建议