什么是模板方法模式
模板方法模式是行为型模式。
书中定义
定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
我的理解
一组固定操作的流程,中间某个流程可以做抽象方法,做不同操作的,例如去银行取钱
{
取号();
排队();
办理业务();
评价();
}
在这个流程中,办理业务可能不同,我们可以继承这个类,然后单独实现办理业务的方法。
模板方法的优缺点
优点
1.封装不变部分,扩展可变部分。
2.提取公共部分代码,便于维护。
3.行为由父类控制,子类实现。
缺点
1.对每个不同的实现都需要定义一个子类,这会导致类的个数增加,设计也更加抽象。
2.父类中的抽象方法由子类实现,子类执行的结果会影响父类的结果,这导致一种反向的控制结构,它降低了代码的可阅读性。
3.由于继承关系自身的缺点,如果父类添加新的抽象方法,则所有的子类都要改一遍。