关于java的三层架构存在的疑惑

首先,本人对架构的概念比较肤浅。以下只是通过大大小小的项目一些问题总结,希望能引起大家的共鸣,并得到很友好的回答与支持。

java项目一般分为三层:表现层,逻辑层,数据层.
其中表现层基本用开源框架(struts2)
其中逻辑层通过spring组织协调。
数据层目前常用的是hibernate等ORM映射狂接。

这三层中的组织应用为:jsp -> Action -> IService-> ServiceImpl -> IDao-> DaoImpl
看着貌似很明郎,调理很清晰。但问题出现在Action 和 IService中。在这里通过serviceImpl进行逻辑应用,但是这个逻辑过于肤浅和简单的时候可以通过接口实现类进行代码的罗列,如果涉及到扩展的时候(如,在serviceImpl中涉及一些涉及模式)这个serviceImpl显然不能做到更好的逻辑组织。

请教大家如果脱离“IService -> ServiceImpl ”仅仅是借口的实现呢??如果不用IService ,又不能保证逻辑层的事务控制。

楼上大师,期待详解。简单说一下也好。
传统的三层框架目前已基本定型,但其实舒服了很多东西。

我也很想知道,恳请banq能详细说说

你现在架构实际是事务脚本架构,业务逻辑都在服务中,还被事务机制锁定,实体模型是贫血失血的,没有业务逻辑,都在服务中了。
象这样以过程为主的架构是难以拓展的,更无法使用模式等,必须对现有架构重构,建议学习DDD。

banq说的也是我最近想的,ssh架构确实不怎么好用模式,由于自己知识的局限,又不知道从何入手,始终觉得自己进步的太慢,现在总算有点方向了,非常感谢