模板方法设计模式
简介:
又叫模板模式,在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,简单来说,模板方法模式定义的一类任务的骨架,将一些步骤延迟到子类中,使子类避免重写编写骨架,只需要按自己的需要实现已有的抽象方法即可,这种设计模式属于行为型模式。
案例:
例如一个豆类饮品制作流程,可分为:选豆,榨汁,个性化处理,包装
那么我们可以定义一个父类Test1,定义这个制作流程:
制作主方法为doWork(),选豆方法select(),制作饮品方法make(),个性化处理方法personalProcess(),包装方法pack()
在主方法中完成这些调用处理,具体如下图所示:
可以看到这个流程,默认即可以制作黄豆饮品,然后我们再编写一个子类进行继承进行绿豆饮品制作,中间还可以增加个性化处理:
然后运行测试方法可以看到结果:
总结:
这种设计模式适合流程步骤大致固定的任务处理,我们在基类中定义好流程的骨架,可以非常快速的对新的任务需求进行扩展。代码复用性高,各个模块功能清晰,扩展性好,但是如果步骤非常多,拆的比较细,涉及的类会比较多,可能会比较乱,所以需要做好相关类的梳理工作,便于代码检查回顾以及问题分析。