设计模式六 模板模式

模板模式的特点:

1:父类抽象类:类中含有具体不变的方法和可变的抽象方法

2:钩子方法:钩子方法在父类中,有父类声明的子类实例化对象可以通过钩子方法访问子类实现的抽象方法

3:子类:继承父类、实现抽象方法

优点:

1:子类实现父类的方法,增加了程序的可扩展性

2:父类封装了公用代码,实现代码的重复利用

3:部分代码由子类扩展,符合开闭原则

缺点:

1:每一个实现都要有一个具体类,导致子类的不断增加,系统变得庞大

2:子类实现父类方法,导致子类的执行结果影响父类的执行结果,导致一种反向的控制结构,它提高了代码阅读的难度

直接上代码

首先创建父类抽象类

public abstract class TemplateTest {

    public void getMessage(String msg){
        System.out.println(msg);
        getAdd(msg);
        getAddOne(msg);
    }

    public abstract void getAdd(String msg);

    public abstract void getAddOne(String msg);
}

创建子类实现抽象方法

@Component("templateTest")
public class TemplateTestImpl extends TemplateTest{

    @Override
    public void getAdd(String msg) {
        System.out.println(msg+1);
    }

    @Override
    public void getAddOne(String msg) {
        System.out.println(msg+2);
    }
}

测试类试一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章