DDD,SSH...希望bang和各位高手指正我的理解误区?

09-04-18 woniufly

一直也对JAVA EE层次架构非常感兴趣,用SSH开发居多,对于DDD的概念,真的没有听说过,看了大家很多的文章,也看不明白,或者真的要静下心来,买本书来好好学习学习。

我的理解是分层的层次有:表示层+业务逻辑层+数据库访问层, 表示层对于于MVC模型,struts1.x中的JSP相当于视图,action相对于控制器,至于model(模型)是要我们自己去实现,业务逻辑层,我们一般都设计业务逻辑接口,然后在action里面调用业务逻辑接口就行,

问题一:是不是业务逻辑接口就是大家说的service层?

在业务逻辑实现类里面写上我们具体的业务逻辑,数据库访问层我们有抽象除了DAO层,因为这样我们可以灵活的实现持久化方式,采用hibernate实现或者jdbc实现都可以;写好了我们的DAO实现类,然后在我们业务逻辑接口实现类里面调用DAO的相关方法即可,至于model,我们是始终贯穿于整个层次的。对于在action里面注入我们的业务逻辑接口实现类,和在业务逻辑实现类里面注入我们的DAO实现类,我们都是通过spring的IOC机制来实现,spring是针对接口编程的,针对接口编程,我们可以很好的利用JAVA动态代理机制,可以很好的利用AOP机制,可以方便的配置事务管理器,这是我的理解,但是

问题二:spring是封装业务逻辑的?这话什么意思,难道是说,他管理了struts和hibernate,配置各个接口的依赖关系,才说他是业务逻辑层?

这两个问题希望bang和高手们给我提供点思路,同时指正我的一些错误的观点。

问题三:大家所说的DDD有是一个什么的框架概念或者一个层次概念,对于与我上面的理解,有什么不同之处,SSH架构实现了ddd的层次概念了吗?

注:希望大家能够答复于我,谢谢各位了!

[该贴被admin于2009-04-20 08:50修改过]

              

2
banq
2009-04-19 12:02

SSH只是实现了DDD初步分层架构,但不完全,所以,使用SSH编程,不学习DDD,就会将业务逻辑写到service等去,因为业务层按照DDD划分是有领域层和应用层。

很多人学习SSH Spring这些框架,但是不懂SSH/Spring的源泉或指导思想,那么就会误用,学习次序正好倒过来了。

woniufly
2009-04-19 20:54

>就会将业务逻辑写到service等去

service不就是业务逻辑层吗?怎么不能把业务逻辑写到service里面去呢?

woniufly
2009-04-19 20:54

>业务层按照DDD划分是有领域层和应用层。

好像很复杂....不理解

banq
2009-04-20 08:49

>service不就是业务逻辑层

完全错误 service只是业务逻辑层中一部分,只是对客户端的一个接口,就象皮肤是人体与外界接触层一样。

也象你去加油站加油,加油服务是从加油者角度看的一个接口,实际上,加油服务后面包括很多内容,需要运油,需要计价器 需要人员管理和成本,如果将这些都放在单一的service这个接口性质中,那么无疑是对OO缺乏了解。

所以,无论使用什么框架,首先掌握好OO,这是基础。如果你只会数据库 算法,那么拿了SSH这些框架,你就会按照面向数据库编程来编,将对象看成数据的容器,将功能都在service中实现,这是打着OO旗帜的假OO,实际是面向过程编程,可悲的是很多人不知道,以为软件就是这样,变成常识了。

2Go 1 2 下一页