Hibernate的dialect就是一种典型的策略模式。Dialect类代表各数据库方言的抽象父类,不同数据库的持久化访问存在一些差异,Dialect不同子类就代表一种特定的数据库访问策略。我们需要在hibernate.cfg.xml文件中指定使用哪种Dialect子类。
Spring的事务机制也是一种典型的策略模式。Spring事务策略是通过PlatformTransactionManager接口体现的,当底层采用不同的持久化技术时,就采用其不同的实现类,例如,配置JDBC数据源的局部事务管理器时,就使用DataSourceTransactionManager类,配置Hibernate的局部事务管理器时就使用HibernateTransactionManager类。