满城尽是Interface,接口真的那么神奇?
晚饭后由于不能很集中地思考,就大致地看了EntityPersister这个接口的继承关系及其实现类.
呵,真是不看不知道,一看吓一跳,又是一个很庞大的继承树,而且还里有那么多的接口,不禁就感叹了:为什么Hibernate里这么多的接口?这样的接口设计能达到想像的效果么?在解藕合方面真能那么灵验?感觉有些接口过度了,不丁点的小事动不动就来一个接口.说句"大言不惭"的话,在自已的设计中是绝对想不到用这么多接口的.
写着写着,就意识到了:用众多接口而不用众多类是一个以前没想到(或没有这么强烈感觉到)的好处的,那就是利用接口可以视具体情况而做到细粒度的划分,此种情况下不必去考虑其实现类的多少,或更进一步就是不必把实现类也划分的那么细,(若把实现类也划分到接口那样的精细程度,在维护上是很费精力的.)而把这些接口的实现都集中在一起,这样就极好地达到服务与实现的解藕合.或许这就是解藕合的实质吧.
写到这,不由地又想起来这些天稍不留神地会去想去找映证的一个问题:究竟面向对象有什么好处?现在项目虽说是用的Java这一面向对象的语言,但像C语言那样面向过程的设计/编程方式随处可见.每当看到披着Java语言的面向过程就不由地反问,面向对象真的就像某些人所说的那样神奇?
今天由Hibernate里EntityPersister想到的接口带来的好处虽说不能完全消除对"挂着养头卖狗肉"的疑惑,但对面向对象的神奇与伟大有了很直观很切身的体会,再次感谢Hibernate!再次感谢开源软件给俺带来的启发与思考!
****************************************
以前对接口好处的认识也仅仅停留在JavaEE中的Data Object Accessor上,也正是由于这种情况下接口应用很常见,久而久之,习以为常,钝化了思维,心里不免觉得接口设计也不过尔尔嘛,偶尔还自以为是地对自己说掌握了接口设计的精髓.
呵呵,汗颜呀.DAO仅仅是接口发挥威力的一个小小场所.
解藕合:调用与运行分开,服务与实现分开.
描述: Hibernate中的EntityPersister
大小: 17.7 KB
分享到:
相关推荐
hibernate源码
标题"hibernate源码 直接使用"表明我们将探讨的是Hibernate框架的源代码,以及如何直接在项目中应用这些源代码。Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了数据库操作,将数据库交互转化为面向...
接下来,我们将深入探讨Hibernate的核心概念、如何在Eclipse中导入源码以及如何利用这些源码进行学习。 1. Hibernate 核心概念: - ORM(Object-Relational Mapping):ORM是将数据库中的关系数据映射为Java对象的...
在深入研究Hibernate源码时,可以关注以下关键点: - **实体管理**:了解实体生命周期(瞬态、持久化、托管和脱管),以及状态转换的过程。 - **HQL和Criteria API**:学习如何构建面向对象的查询,以及它们与原生...
《Hibernate源码解析(一)》 在Java开发领域,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。深入理解Hibernate的源码,不仅可以帮助开发者更好地运用该工具,还能提升对Java编程和...
Hibernate源码(hibernate-orm-main.zip)Source Code: Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。 它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
**标题与描述解析** 标题"传智播客hibernate源码"暗示了这是一个关于Hibernate框架...通过研究这些文件,学习者可以深入了解Hibernate的工作原理,提升数据库操作的技能,并了解如何在实际项目中有效地使用Hibernate。
《精通Hibernate源码》 ...通过深入研究Hibernate源码,我们可以更好地理解ORM的工作原理,从而在项目实践中更好地运用Hibernate,提高代码质量和开发效率。同时,掌握源码也有助于定制化开发,满足特定业务需求。
《深入剖析Hibernate源码》 Hibernate,作为一款广泛使用的开源对象关系映射(ORM)框架,为...通过对源码的深入研究,我们可以更好地利用Hibernate提供的功能,优化我们的应用,同时也能为自己的项目设计提供灵感。
在本篇《Hibernate源码解析(二)》中,我们将深入探讨Hibernate这一强大的Java对象关系映射(ORM)框架的内部工作原理。这篇博客旨在帮助开发者更好地理解Hibernate的核心机制,以便于更高效地利用它来处理数据库...
Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库,而无需直接编写SQL语句。...通过对"hibernate-one2many"的分析,我们可以深入研究和实践一对一和一对多关联关系的配置和操作。
总之,深入学习Struts、Spring和Hibernate的源码,对于提升Java开发者的专业水平具有重要意义。这不仅涉及到了Web开发的基本原理,还涵盖了软件设计、框架构建和数据库交互等多方面的知识。通过这种方式,开发者可以...
Hibernate是一种Java语言下的对象关系映射解决方案。 它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate也是目前Java...
《Hibernate源码解析(三)》这篇文章主要探讨了Hibernate框架的深入源码解析,这是对 Hibernate 框架理解的进一步深化。在本篇中,作者聚焦于几个关键的组件和机制,帮助读者理解 Hibernate 如何高效地管理和操作...
《深入理解Hibernate源码》 Hibernate,作为Java领域中的一款著名持久化框架,极大地简化了数据库操作,使得开发者能够更加专注于业务逻辑。本资料主要基于“传智播客hibernate源码.rar”进行深入剖析,旨在帮助你...