论坛首页 Java企业应用论坛

Spring带来了什么?OOD学而无用

浏览 68770 次
精华帖 (0) :: 良好帖 (9) :: 新手帖 (19) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-04-12  
我很欣赏spring。不然你这样的人那有机会从事软件开发。
0 请登录后投票
   发表时间:2013-04-12  
gdpglc 写道
dwangel 写道
OOD跟用不用Spring是没啥关系,用spring实现OOD也很方便。
用spring而不用OOD也很常见。

就像 Linux之父对 C++的抱怨一样,如果用C++,一堆人中,只要有一两个
不恰当地使用,可能造成极大范围的破坏。

用spring创建模范性质框架,而不需要使用者去自己构想,其实更多的是软件工业和管理的做法,
减少犯错的几率,
跟编程技术追求无关。

有的人,你给他再好的技术条件,他也不会主动学习;有的人,环境再差也可能努力提高,追求更多的技术。

这个帖子其实,确实片面。 所在开发团队的不同,决定了实际的选择。

一两个OO编程思想的人,和很多只会做实际任务的人的团队,还是做一个通用性框架算了。


我说使用OOD,并不是指在局部用用似似而非的设计模式。

我是指从OOA的结果导出软件设计结果的方法。最终的结果应该是,有领域层的,业务逻缉和领域对象紧密结核。OOD以OOA的结果作为输入,进行设计建模,主要工作是找到需要的领域类,并给领域类分配职责。

如果你确切的明白我的意思。在spring中用不用OOD就不是团队的选择。这里有很大的风险。

在spring中应用OOD的主要困难是,OOD的结果,没办法在spring中表达。就是说,让领域对象充血。

没走过夜路的人,是不会走夜路的,那怕别人说那个路很快很好。

充血的问题,不必在这讨论。因为iteye中有很多的贴子了。



领域建模与充血模型,不可否认是完全采用OOA和OOD的理想化的开发模式。

但是这种开发模式如果用于非server side开发还可行,但在server side,会面临很多不一样的问题,比如性能。所以在Server Side比较特殊,要完全采用纯粹的OOA和OOD有难度。

另外,server side的开发还受制与特定的网络协议,比如Web项目就会受限于HTTP与HTML/JS,同样会影响到能否完全采用这种理想化的开发模式。再如SOA,那基本就是面向过程而非OO的开发思路。

因为这些原因导致无法全面OOA和OOD,而让Spring来做罪人,是找错目标了。
0 请登录后投票
   发表时间:2013-04-12   最后修改:2013-04-12
gdpglc 写道
我很欣赏spring。不然你这样的人那有机会从事软件开发。



呵呵,开始人身攻击了?是谁在回避技术?
0 请登录后投票
   发表时间:2013-04-12  
领域对象在Spring为什么不能充血;简单举个例子,你可以在context初始化的时候,为领域类注入静态的持久化实例;或者封装一层前台的参数或者VO,到领域对象的转换,在这个转换器里面引用Spring去构建领域模型;

和你不用任何框架去构建领域模型不是一样嘛,说到底Spring应对领域不够灵活的地方,就是JAVA不够灵活的地方; 你只能说Spring没有帮助你做了什么事情,但是也没有限制你。。。拜托不要说了半年就是一句 Spring就是贫血,除了搬一堆帖子一个例子都没有。
0 请登录后投票
   发表时间:2013-04-12  
Shen.Yiyang 写道
领域对象在Spring为什么不能充血;简单举个例子,你可以在context初始化的时候,为领域类注入静态的持久化实例;或者封装一层前台的参数或者VO,到领域对象的转换,在这个转换器里面引用Spring去构建领域模型;

和你不用任何框架去构建领域模型不是一样嘛,说到底Spring应对领域不够灵活的地方,就是JAVA不够灵活的地方; 你只能说Spring没有帮助你做了什么事情,但是也没有限制你。。。拜托不要说了半年就是一句 Spring就是贫血,除了搬一堆帖子一个例子都没有。

用aop充血也是可以地。

不过,因为绕过语法检查,反而会越来越乱。
0 请登录后投票
   发表时间:2013-04-12  
我觉得有两种开发人员,一种是app developer,一种是api developer。用spring的属于前一种,开发spring的属于后一种。
0 请登录后投票
   发表时间:2013-04-12  
dwangel 写道
Shen.Yiyang 写道
领域对象在Spring为什么不能充血;简单举个例子,你可以在context初始化的时候,为领域类注入静态的持久化实例;或者封装一层前台的参数或者VO,到领域对象的转换,在这个转换器里面引用Spring去构建领域模型;

和你不用任何框架去构建领域模型不是一样嘛,说到底Spring应对领域不够灵活的地方,就是JAVA不够灵活的地方; 你只能说Spring没有帮助你做了什么事情,但是也没有限制你。。。拜托不要说了半年就是一句 Spring就是贫血,除了搬一堆帖子一个例子都没有。

用aop充血也是可以地。

不过,因为绕过语法检查,反而会越来越乱。


AOP用起来确实非常乱,现在有些用法是用领域模型完成业务逻辑,AOP织入持久化,异常处理这些东西;但是AOP本身不能保证开发人员超出这些范畴,把业务逻辑也丢到切面去搞得到处都是。

说回领域模型和Spring,当没有任何框架来实现领域模型的时候,不是也要自己写一大堆代码去构建领域,确保完整性和注入依赖的实现。如果你用代码可以构建聚合根,为什么Spring不可以,只不过Spring确实没有给这个过程太大的帮助。
0 请登录后投票
   发表时间:2013-04-12  
elgs 写道
我觉得有两种开发人员,一种是app developer,一种是api developer。用spring的属于前一种,开发spring的属于后一种。

错了,利用spring也可以开发api地。
0 请登录后投票
   发表时间:2013-04-12   最后修改:2013-04-13
Shen.Yiyang 写道
领域对象在Spring为什么不能充血;简单举个例子,你可以在context初始化的时候,为领域类注入静态的持久化实例;或者封装一层前台的参数或者VO,到领域对象的转换,在这个转换器里面引用Spring去构建领域模型;

和你不用任何框架去构建领域模型不是一样嘛,说到底Spring应对领域不够灵活的地方,就是JAVA不够灵活的地方; 你只能说Spring没有帮助你做了什么事情,但是也没有限制你。。。拜托不要说了半年就是一句 Spring就是贫血,除了搬一堆帖子一个例子都没有。


为领域类注入静态的持久化实例。

看不懂?

如果是基于数据库的应用,不用任何框架,构造领域模型是很困难的,要弄懂什么是领域模型,处理领域模型的持久化问题,这都不是拍一下脑门能解决的。在这种情况下需要的是创造性的设计,这时OOD的技能很重要。但相对于Spring来说这么做:高风险低回报。

因为:spring粘合了各种框架,可以很方便的采用过程化的业务逻缉表达方式实现软件。正因为spring可以替代前者,所以说OOD的知识就不重要了。

你自已都说spring对于OOD没有帮助。那还为什么硬要在spring上构建领域模型呢,这时它的过程化支持到会对你的设计带来限制。

spring提供了替代OOD的过程化解决方案。一方面是自行构建领域模型困难重重;一方面是简单易用的spring过程模型。这是问题的实质。

没人说Spring不好。我正是在说它好。我的确很欣赏spring。它大大降低了软件的开发难度。

我只想说明,用spring的web项目是用不上OOD的理论知识的。

贫血的例子还用举吗?
0 请登录后投票
   发表时间:2013-04-12   最后修改:2013-04-13
Shen.Yiyang 写道

现在有些用法是用领域模型完成业务逻辑,AOP织入持久化,异常处理这些东西;但是AOP本身不能保证开发人员超出这些范畴,把业务逻辑也丢到切面去搞得到处都是。

说回领域模型和Spring,当没有任何框架来实现领域模型的时候,不是也要自己写一大堆代码去构建领域,确保完整性和注入依赖的实现。如果你用代码可以构建聚合根,为什么Spring不可以,只不过Spring确实没有给这个过程太大的帮助。


AOP怎么织入持久化?

第二段话还是看不懂。 构建领域 和 确保完整性 和 注入依赖 是什么关系?

你的意思难到是,领域对象可以通过Spring容器创建和注入依赖关系?

用spring 通常就是 action service dao, 你到底要怎么用spring?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics