java设计模式(九)---模版方法模式
一、模板方法模式定义:
在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤
二、模板模式涉及的角色:
1.抽象类:
实现了模板的方法,定义了算法的骨架。
2.具体实现类:
实现了抽象类的抽象方法,以完成完整的算法
三、模板方法的优缺点:
优点:
模板方法牧师通过吧不变的行为搬移到超类,去除了子类的重复代码。
子类实现了算法的某些细节,有助于算法的扩展
通过一个父类调用子类实现操作,通过子类扩展增加新的行为,复合开放-封闭原则
缺点:
每个不同的实现都需要定义一个子类,这样会导致类的个数增加,设计更加抽象
四、适用场景:
在某些类的算法中,用了相同的方法,造成了代码的重复
控制子类扩展,子类必须遵守算法规则
五、模式实现:
以我们项目中的例子描述一下模板模式的使用,业务需求就是数据的搬运,从A系统将数据搬运到B、C、D等系统,但是数据具体的字段什么的不一致,但是业务是相似的,简化版的如下:
1.抽象类:
2.具体实现类:
3.使用:
个人觉得这是一个不难理解,但是用起来非常方便的设计模式