Spring作为业界的经典框架,无论是架构设计还是代码编写,都堪称业界典范。好了,废话不多说,下面开始今天的内容。Spring中常用的设计模式有九种。模板方法(TemplateMethod)spring的jdbc模板,非常佩服Spring源码的精妙之处,极其经典。Spring真的是设计模式的集合,而且用的非常熟练。模板方法(templatemethod)在spring中被广泛使用,比如:jdbcTemplate、hibernateTemplate、JndiTemplate以及一些周边的包无疑都使用了模板模式,但是spring并不是简单的使用模板方法,而是在此基础上进行了创新,使用与回调(callback)一起使用,使用起来极其灵活。所谓模板方法就是在父类中定义算法的主要流程,将一些个性化的步骤延迟到子类中去实现。父类始终控制着整个过程的主动权,子类只是辅助父类实现一些可定制的步骤。所谓回调就是在方法参数中传递一个接口。父类调用该方法时,必须调用该方法传入的接口的实现类。下面是一个具体的例子,JdbcTemplate中的execute方法。以上只是SpringJdbcTemplte实现的基本原理。SpringJdbcTemplate在里面做了更多的事情,比如将所有的基础操作都封装到了JdbcOperations接口中,使用JdbcAccessor来管理DataSource和转换异常。策略(Strategy)策略模式是对算法的封装,将使用算法的责任与算法本身分离,委托给不同的对象管理。策略模式通常将一系列算法包装成一系列策略类,作为抽象策略类的子类。Strategy模式在spring中实例化对象时使用。SimpleInstantiationStrategy中的以下代码说明了策略模式的用法。简单工厂也称为静态工厂方法(StaticFactoryMethod)模式,但不属于GOF23种设计模式之一。简单工厂模式的本质是一个工厂类根据传入的参数动态决定创建哪个产品类。spring中的BeanFactory就是简单工厂模式的体现。bean对象是通过传入唯一标识获得的,但是是在传入参数之后创建还是在传入参数之前创建,要视具体情况而定。下面的配置是在HelloItxxz类中创建一个itxxzBean。
