行为型模式
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。
今天开始我们讲的是行为型模式中的模板方法模式。老规矩,讲解之前再次熟悉下行为型模式包含:模板方法模式、策略模式、命令模式、职责链模式、状态模式、观察者模式、中介者模式、迭代器模式、访问者模式、备忘录模式、解释器模式。共11种设计模式。
模板方法模式(Template Method)
定义
定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。
解决问题
对某些已确定通用规范进行统一管理,不确定部分交由子类具体实现,但整体行为规范不变。
实现
定义通用规范方法,对于不确定部分设计为抽象方法,由子类进行完成。
结构
主要角色:
-
抽象类(Abstract Class):提供一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。这些方法的定义如下