这篇文章,做为整理设计模式相关文章的开篇。到目前为止,已经有JVM,Spring,CoreJava三条线索整理Java相关知识,加上设计模式有4条了,每条都还只是开头,加油。
顾名思义,DAO = Data Access Object,用来抽象和封装处理数据源的操作。DAO管理与数据源的连接,获取和存储数据。数据源,可以是DB,文件,第三方服务等。对于DAO的使用者,不用知道到底出哪儿获取的数据,DAO隐藏数据源的实现细节,提供接口给用户使用,接口不会因为数据源的改变而改变。DAO相当与在组件和数据源之间扮演适配者。
如上图所示,DAO模式的类图。
Business Object:代表使用数据的用户。该对象需要访问数据源,获取和存储数据。可以是Session Bean,实例Bean以及其他Java对象,例如servlet的helper类。
DataAccessObject:该模式的核心对象,抽象潜在的数据访问实现。使Business Object可以透明的访问数据源。相当于Business Ojbect委托数据获取和存储操作给DataAccessObject。
DataSource:数据源的实现,可以是RDBMS,OODBMS,XML repository,文件系统,其他服务等。
TransferObject:数据载体,作为一个数据对象,由DataAccessObject返回给用户(Business Object)。存储的话,则反向。
Java,发展20多年至今,已经占领企业级开发,Java自己提供的JavaEE标准中,EJB定义过于复杂,自入行业以来木有做过相应的开发,然后Spring却一直在使用,所以将Spring作为Java学习的一条主线,进行系统性的整理,归纳。
Spring对照EJB,相对简化的开发平台,但是Spring不是一个简单的框架,可以说是一个很大的框架集。核心思想,是基于POJOs的容器,支持依赖注入,各种templates模版,AOP编程,集成很多第三方流行框架。
对于JAVA,很重要的特性,是开发人员不用关心GC(garbage collection),Java语言使用时,不用关心内存回收问题,更多的关注business上。从另一面讲,如果Java虚拟机出现内存泄漏问题,往往会不知所措,引文内存回收,交给虚拟机来维护了。虚拟机帮我们做了,但是它也不是万能的,为了更好的使用Java,提升性能,规避内存溢出风险,需要深入了解虚拟机的构造。
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.