模板设计模式
定义:模板设计模式就是把某些类似算法或者业务提供一个统一的执行框架,把这些业务种共同的部门抽取出来进行具体实现,而某些业务中特定的部分推迟到子类中进行重写实现。
使用场景: 当不变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为会在子类中重复出现,我们可以通过模板方法把这些行为搬移到单一的地方(方法)中,这样就帮助子类摆脱重复的不变行为的纠缠。
优点:模板方法模式通过把不变的行为搬移到超类,去除子类中的重复代码来体现它的优势。模板方法模式提供了一个很好的代码复用平台。
1)封装不变部分,扩展可变部分:把认为不变部分的算法封装到父类实现,可变部分则可以通过继承来实现,很容易扩展。
2)提取公共部分代码,便于维护
3)行为由父类控制,由子类实现。
缺点:
模板方法模式颠倒了我们平常的设计习惯:抽象类负责声明最抽象、最一般的事物属性和方法,实现类实现具体的事物属性和方法。在复杂的项目中可能会带来代码阅读的难度。