模板方法模式
2020-06-15 本文已影响0人
蓝色Hippie
一、模板方法模式 TemplateMethod
模板方法模式:定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法中的结构即可重新定义该算法的某些特定步骤。
模板方法模式,是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。当不变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法把这些行为搬移到单一的地方,这样就能帮助子类拜托重复的不变行为的纠缠。
.(1) AbstractClass(抽象类):在抽象类中定义了一系列基本操作(PrimitiveOperations),这些基本操作可以是具体的,也可以是抽象的,每一个基本操作对应算法的一个步骤,在其子类中可以重定义或实现这些步骤。同时,在抽象类中实现了一个模板方法(Template Method),用于定义一个算法的框架,模板方法不仅可以调用在抽象类中实现的基本方法,也可以调用在抽象类的子类中实现的基本方法,还可以调用其他对象中的方法。
(2) ConcreteClass(具体子类):它是抽象类的子类,用于实现在父类中声明的抽象基本操作以完成子类特定算法的步骤,也可以覆盖在父类中已经实现的具体基本操作。
二、demo
假设要制造悍马汽车,悍马汽车有两个系列H1和H2
Hummer HummerH2 HummerH1 客户端