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的异常处理思想也值得一提。
分享到:
相关推荐
### 为何需要OOD? OOD的重要性在于它能帮助开发者应对软件开发过程中不可避免的需求变更。软件需求往往是动态的,随着项目的进展,客户可能提出新的要求或对原有需求进行修改。OOD通过模块化和解耦合的设计,使得...
这两种方法学不仅帮助开发者更好地理解问题域,还能够指导他们如何构建高效、可维护的软件系统。接下来我们将详细探讨 OOA 和 OOD 的核心概念、发展历程及其应用。 ### 一、面向对象分析(OOA) #### 1.1 概念介绍...
5. **重构**:重构是改进代码结构而不改变其外在行为的过程。通过重构,我们可以保持代码的整洁,提高代码质量。 在学习C# OOP/OOD时,不仅要理解这些概念,还需要通过实践项目来巩固。可以尝试创建简单的应用程序...
而《OOD启思录》被读者评价为“面向对象设计领域中的Effective C++”——正如Effective C++能帮助你迈向C++专家层面,《OOD启思录》能帮助你迈入OOD殿堂。 本书提供了改进面向对象设计的真知灼见。 全书共11章,...
在软件开发过程中,需求往往是动态变化的,而OOD通过提供一种结构化的思考方式,使得软件能够更好地适应这些变化。具体而言,OOD关注于以下几点: 1. **模块化**:OOD鼓励将软件分解成独立的、功能明确的模块,这样...
OOD启思录
面向对象设计(OOD)思想(示例代码见文末下载连接)收藏 有了思想才能飞翔,缺乏灵活就象少了轮子的汽车,难以飞奔。为了更好的理解设计思想,结合一个尽可能简洁的实例来说明OOD、设计模式及重构。通过下面的代码,...
《OOD启思录》是一本深入探讨面向对象设计(Object-Oriented Design,简称OOD)的经典教材。在软件开发领域,面向对象设计是构建可维护、可扩展且高效软件系统的关键技术之一。这本书以高清版的形式,为读者提供了一...
在本教程中,我们将探索面向对象分析(OOA)和面向对象设计(OOD)的基本概念。这些方法是软件开发过程中的关键步骤,特别是在理解和建模复杂系统时。我们的目标是展示如何通过用例分析、场景定义、顺序图和类图来...
9. **重构**:OOD也强调代码的持续改进,通过重构优化代码结构,提高代码的可读性和性能,而不改变其外在行为。 10. **测试驱动开发(TDD)**:在OOD实践中,TDD是一种重要的开发方法,先编写测试用例,再编写满足...
**面向对象设计(OOD)与设计模式** 面向对象设计(Object-Oriented Design,简称OOD)是软件开发中的一种常用方法,它强调将现实世界的问题转化为计算机程序中的类和对象,以便更好地理解和处理复杂性。OOD的核心...
最后,OOA/OOD方法在实践应用中也会遇到各种挑战,比如如何确保设计的可扩展性、如何管理类的继承结构、如何处理多态性带来的复杂性等等。因此,开发者需要不断学习和适应,利用最佳实践和设计原则来指导系统设计和...
"OOD设计基本原则整理" OOD 设计基本原则之一:开-闭原则 开-闭原则是 OOD 设计的核心原则之一,该原则强调一个软件实体应当对扩展开放,对修改关闭。也就是说,在设计一个软件实体的时候,应当使这个软件实体可以...
面向对象技术的C++ OOD实践是软件开发中的一项核心技能,它涵盖了从需求分析到系统设计再到实际编码的全过程。面向对象分析(OOA)是这个过程的起点,主要关注的是业务领域的理解和分析,目的是将现实世界的业务逻辑...
面向对象分析(OOA)、面向对象设计(OOD)与UML的基础教程
这三者构成了所谓的"OOP/OOD三件套",对于理解和实践面向对象编程有着深远的影响。 首先,我们来看设计模式。设计模式是软件设计中经常遇到问题的解决方案模板,它是在特定上下文中被反复使用的、已被证明有效的...
**对象导向分析(Object-Oriented Analysis,OOA)与对象导向设计(Object-Oriented Design,OOD)是软件工程中的关键步骤,特别是在复杂系统开发中。这些方法论旨在通过模拟现实世界中的实体和关系来创建高效、可...
本文不讨论“怎么做需求分析”,也不讨论“怎么做编码实现”,更不讨论“设计模式是否有用或是否有必要”等问题,本文主要讨论“怎么利用设计模式做软件设计”。 当我们讨论设计模式时,我们不是要解决一个问题,...