在学习spring的过程中,经常能看到各种Template,如果能理解了这个的核心思想是不是一下就可以全部理解所有的Template,也就是掌握事情的本质,做到一通百通,再遇到类似的不会不理解,可以直接做知识迁移,今天来一起理解下
模板模式又叫模板方法模式,是定义问题的主要框架,流程,具体的详细实现留到子类,也就是定义了事情的规则,至于每个小部分在子类中可以自定义。留下大框架,保留灵活性。
模板模式使得子类可以在不改变算法结果的情况下,重新定义某些步骤,属于行为型设计模式。
模板模式适用于以下场景:
定义流程的不变部分,将可变的行为留给子类来实现。
抽象子类的公共行为,将公共的代码留在父类,将需要分别实现的放在子类,从而避免代码重复。
举个例子:
比如unity 和 cocos 现在的脚本,引擎内置了脚本的执行流程,开发人员根据游戏的需要实现具体的游戏行为。
下面以unity 为例
unity的模板类 是MonoBehaviour ,模板类中最常用的几个方法:
优点:
利用模板模式将相同处理逻辑的代码放在抽象父类中,可以提高代码的复用性。
将不同的代码放到不同的子类中,通过对子类的扩展增加新的行为,可以提高代码的扩展性。
缺点:
每个抽象类都需要一个子类实现,导致类的数量增加。
类数量的增加间接的增加了系统复杂性。
因为继承关系自身的缺点,如果父类添加新的抽象方法,所有子类都要改一遍。
在学习Spring的过程中,发现Spring封装的几个模板,这里罗列出来,便于对比学习。
SimpleJdbcTemplate 该模板已经过时,不做赘述
JDBCTemplate JDBCTemplate是Spring对JDBC的封装,开发人员自己写SQL,需要注入dataSource。
HibernateTemplate 使用HibernateTemplate不用关心底层的数据库是哪个数据库,直接操作对象,需要注入sessionFactory
NamedParameterJdbcTemplate
本文系作者在时代Java发表,未经许可,不得转载。
如有侵权,请联系nowjava@qq.com删除。