版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/GoGleTech/article/details/84854135
什么是模板模式?
模板模式是基于继承的,父类定义一个模板结构,将具体内容延迟到子类去实现。
代码示例
父类
public abstract class A(){
void step1(){//一样的步骤在父类实现
...
}
abstract void step2()//不一样的步骤在子类实现
abstract void step3()//不一样的步骤在子类实现
void step4(){//一样的步骤在父类实现
...
}
}
子类:
public class B extend A(){
@override
void step2(){//不一样的步骤在子类实现
...
}
@override
void step3(){//不一样的步骤在子类实现
...
}
}
优缺点
优点:
- 提高代码复用性
将相同部分的代码放在抽象的父类中 - 提高了拓展性
将不同的代码放入不同的子类中,通过对子类的扩展增加新的行为 - 实现了反向控制
通过一个父类调用其子类的操作,通过对子类的扩展增加新的行为,实现了反向控制 & 符合“开闭原则”
缺点
引入了抽象类,每一个不同的实现都需要一个子类来实现,导致类的个数增加,从而增加了系统实现的复杂度。