1、Spring框架高级开发工程师培训框架高级开发工程师培训中程在线(北京)科技有限公司内部教程注意保密第3章 Spring与松耦合的软件系统学习内容学习内容 J2EE的分层设计 紧耦合软件系统所带来的危害 Spring如何构建松耦合的软件系统J2EEJ2EE的分层设计的分层设计-四层架构四层架构紧耦合软件系统所带来的危害紧耦合软件系统所带来的危害 不要假定用户需求是不变的,拥抱变化,只有肯定用户需求变化是永恒的这样原则,我们设计的软件系统才能满足用户不断变化需求。这就要求我们的软件系统应该具有很好的可扩展性和可复用性,那么我们的手段是什么呢?这就是要降低层与层的耦合度即松耦合。紧耦合的设计情况?
2、紧耦合的设计情况?由于层与层之间没有设计接口,而且层与层的依赖关系采用new方式等问题,当用户需求变更了就会引发“牵一发而动全身”可怕情形。假如我们现在持久层DAO不使用JDBC技术而换成使用HibernateORM框架,添加一个DAO类即DictionaryDAOHibernateImp,那么情况是什么样子的呢?类图如图3.2所示。由于持久层的变化,导致了依赖于它的服务层和表示层变化,实际上我们所有的层都变化了。清单3.4是为了使用Hibernate实现添加的一个持久层实现类,目前我们也没有连接数据库,我们暂时把返回的值(Hello World)写死了。我们会在以后连接数据库find的返回值
3、从数据库查询处理的。小结小结 综上所述,上面的小例子我们看到,我们修改了数据持久层,结果导致了所有的层的变化,出现了“牵一发而动全身”可怕局面。这就是紧耦合的系统。紧耦合系统给我们的危害是巨大的,任何一点小的修改可能都是灾难的,紧耦合系统给缺少可扩展性和可复用性。不能满足用户不断变化的需求。导致紧耦合原因:系统没有分层;层与层之间没有设计接口,上层调用者要关心下层实现;层与层之间调用还是采用传统new的方式。SpringSpring如何构建松耦合的软件系统如何构建松耦合的软件系统 紧耦合给我们软件系统带来危害。构建松耦合的软件系统是我们的必然的选择。分层设计、并通过Spring解决如下问题:层与层之间没有设计接口 层与层之间调用采用传统new的方式 上面例子就是我们使用了Sping,由于用户需求的变化持久层的DAO由原来使用JDBC实现换成使用Hibernate实现。我们只需要添加一个DictionaryDAOHibernateImp实现类,并修改配置文件就可以了,别的不需要任何的修改。总结总结 综上所述,使用了Spring构建的松耦合系统给我们带来的好处。它使我们在用户需求变更的情况下只需要修改少量代码就可以满足用户需求。这个例子很简单,当然谈不上是一个系统,但是Spring构建松耦合的原理上讲跟一个企业级应用系统是一样的。再看四层架构再看四层架构