`
gdpglc
  • 浏览: 87533 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

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

 
阅读更多
2年前曾发过一个贴子被评为新手:
http://www.iteye.com/topic/865387

终于有机会使用spring了,也用了一年了,再谈谈现在的感想,是否还会评为新手呢?
目前我接触到的spring功能包括:

IOC 构建分层关系:
具体指 action->service->dao 架构。我参与的项目都采用接口类型注入,这里还包括了spring的声明式事务的使用。

spring mvc。

spring aop

spring提供的功能糖(仿效语法糖的叫法),比如对hibernate blob clob类型的封装,对javamail的封装

spring aecgi

以下分类论述:
一、Spring的IOC的作用
  通过ioc,spring为web应用,提供了标准的软件结构定义,对于模块级的对象的访问,提供了统一的控制手段。换句话说,就是提供了web软件的架构模式,不管什么web软件,不必在自行设计架构,用spring的就行了。
  spring提供的架构方式,起到了规范化模块访问的作用,且支持声明式事务。
  这里有必要说明一下,我认为ioc应该采用接口类型注入,而不是类。原因是软件的结构清楚。这里的接口起到了类型隔离的作用,接口是纯粹的功能抽象,依赖于接口要比依赖于类单纯(接口更有用的使用方式是概念抽象)。另外,spring的aop在使用接口时用的是java的proxy技术,而不是cglib技术,我更愿意用java原生技术。(声明式事务会使用spring aop)

二、Spring mvc
  强大的mvc框架,使用方式多种多样,优其是spring 3的mvc,支持annotation的使用,使得Spring mvc易于使用。

三、Spring aop
  使用spring aop 可以完成一些原来难以实现的功能,比如:数据库事务失败后的重试(这种情况通常发生在数据库出现deadlock时)

四、Spring功能糖。
  我只用过两个见上文,很有用。

五、安全架框
  省时省力的完成对资源的访问控制。

Spring + mvc + orm 带来了什么呢?
总体上来看就是让程序员不必再费心思去找类,和决定类的职责分配,而这正是OOD的技能。软件的编写就是按照惯例把业务逻缉表达出来(当然这也有很多技巧,主要集中在库表设计,逻缉表达,性能调优上)
使用面象对象语言,而不需要OOD技能,实际上是降低了软件开发的难度。我身边的3年开发经验的人,对OOD基本上没概念,但软件开发作的也还可以。

这或者是好事吧。用不着OOD,自然就不必研究设计模式这些高深的玩意了,所以从事web开发的人,不断升级的结果就变成了业务专家,而对OO还是不甚了了。不过,当这样的程序员脱离了现有的框架,将寸步难行。

然而,中国还有哪些公司在作创造性的OOD开发呢?

ps: spring的异常处理思想也值得一提。

分享到:
评论

相关推荐

    什么是OOA与OOD

    阶段,要明确用户提出了哪些功能要求,为完成这些要求,系统应有哪些构件,采用什么样的结构,并写出详细的需求规约。OOA中引入了许多面向对象的概念和原则,如,对象、属性、服务 、继承、封装等,并利用这些概念和原则来...

    OOD启思录 高清pdf

    而《OOD启思录》被读者评价为“面向对象设计领域中的Effective C++”——正如Effective C++能帮助你迈向C++专家层面,《OOD启思录》能帮助你迈入OOD殿堂。 本书提供了改进面向对象设计的真知灼见。  全书共11章...

    如何解释OOD及设计

    看外国专家简单明了讲解如何解释OOD及设计

    OOD启思录(高清)

    OOD设计很好的教材,高清 OOD启思录

    OOD启思录.PDF

    OOD启思录

    CORE JAVA总结

    OOD是什么?OOP是什么?分别是:面向对象分析、面向对象设计、面向对象编程抽象的概念:抽象就是忽略一个主题中与当前目标无关的方面,以便更充分地注意与当前目标相关的方法。抽象并不打算了解全部问题,而只是选择...

    面向对象设计OOD思想

    面向对象设计(OOD)思想(示例代码见文末下载连接)收藏 有了思想才能飞翔,缺乏灵活就象少了轮子的汽车,难以飞奔。为了更好的理解设计思想,结合一个尽可能简洁的实例来说明OOD、设计模式及重构。通过下面的代码,...

    Java OOA & OOD & UML

    Java OOA & OOD & UML

    ooa,ood介绍资料

    ooa,ood介绍的入门资料,请想用,谢谢

    ood启思录读书笔记

    ood启思录读书笔记

    面向对象技术的C++ OOD实践

    面向对象技术的C++ OOD实践 面向对象技术的C++ OOD实践

    OOA、OOD和UML

    面向对象分析(OOA)、面向对象设计(OOD)与UML的基础教程

    面向对象设计OOD 面向对象设计OOD

    面向对象设计OOD 面向对象设计OOD 面向对象设计OOD 面向对象设计OOD

    如何向妻子解释面向对象设计(OOD)

    如何向妻子解释面向对象设计(OOD)

    Spring21OOD:NEU CS5004 Spring21

    Spring21 CS5004 OOD远程仓库 课程讲师:Keith Bagley和Clark Freifield 年级: 目录 作业 作业1:向量(编写类和方法) 作业2:棋子(实现它们的接口和类) 实验室 实验1:员工和斐波那契(写作类和方法) 实验2:...

    OOD-Principles-In-Swift, 关于Bob叔叔的文章,基于OOD的原理.zip

    OOD-Principles-In-Swift, 关于Bob叔叔的文章,基于OOD的原理 import Swiftimport Foundation Swift 4中的OOD原理使用 Xcode 9游乐场( OOD-Principles-In-Swift.playground.zip )的短备忘单。 也兼

    OOD Lecture

    本文不讨论“怎么做需求分析”,也不讨论“怎么做编码实现”,更不讨论“设计模式是否有用或是否有必要”等问题,本文主要讨论“怎么利用设计模式做软件设计”。 当我们讨论设计模式时,我们不是要解决一个问题,...

    关于OOD泛化和稳定学习的一些思考等PPT总共114页

    清华大学

Global site tag (gtag.js) - Google Analytics