概念:
固定的流程已经写好了,变化的流程定义成了抽象方法,被子类重写。
模板设计就是一种编码风格,把抽象类看作是一个模板,模板中不能决定的东西定义成抽象方法,让使用模板的去重写抽象方法实现需求
简单来说:模板设计就是提前搭建好了一些框架,但是更细节的东西需要实现类再去实现
设计模式:
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
模板设计模式:
把抽象类整体就可以看做成一个模板,模板中不能决定的东西定义成抽象方法,让使用模板的类(继承抽象类的类)去重写抽象方法实现需求,模板已经定义了通用结构,使用者只需要关心自己需要实现的功能即可
模板设计模式的优势:
1.只需要关注不同的流程,相同交给父类(模板类)去做。
2.解耦:各司其职,一个类只关注自己的事情
- 模块化:是解耦这种思维的实现方法方式。
- getter/setter就是模块化
演示:
作文模板类
public abstract class CompositionTemplate {public final void write(){System.out.println("<<我的爸爸>>");body();System.out.println("啊~ 这就是我的爸爸");}public abstract void body();}
实现类A
public class Tom extends CompositionTemplate {@Overridepublic void body() {System.out.println("那是一个秋天, 风儿那么缠绵,记忆中, " +"那天爸爸骑车接我放学回家,我的脚卡在了自行车链当中, 爸爸蹬不动,他就站起来蹬...");}}
实现类B
public class Tony extends CompositionTemplate {@Overridepublic void body() {}/*public void write(){}*/}
测试类
public class Test {public static void main(String[] args) {Tom t = new Tom();t.write();}}