大话设计模式-模板方法模式(大鸟和小菜Java版)

Posted 香风智乃哈~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大话设计模式-模板方法模式(大鸟和小菜Java版)相关的知识,希望对你有一定的参考价值。

因为最近学习大话数据结构,书上的代码都是c++的,只是把书上的代码以自己的理解改为Java语言的
模板方法模式:属于行为型模式。其意义是定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 。(书上的定义)

代码如下:

package 设计模式.模板方法模型;
//这个是一个模板抽象类
public abstract class Pattern {
//    这是两个抽象方法
    public abstract void primitiveOperation1();
    public abstract void primitiveOperation2();
//定义一个方法(模板方法:给出了逻辑的骨架,而逻辑的组成是一些相应的抽象操作,他们都推迟到子类实现)
    public void tempLate(){
        primitiveOperation1();
        primitiveOperation2();
    }
}

//这是一个具体实现类,继承上面的抽象类,同时重写了抽象类的两个抽象方法
class ClassA extends Pattern{

    @Override
    public void primitiveOperation1() {
        System.out.println("A类方法1实现");
    }

    @Override
    public void primitiveOperation2() {
        System.out.println("A类方法2实现");
    }
}

//同上面的抽象类的情况是一样的
class ClassB extends Pattern{

    @Override
    public void primitiveOperation1() {
        System.out.println("B类方法1实现");
    }

    @Override
    public void primitiveOperation2() {
        System.out.println("B类方法2实现");
    }
}

下面是测试类的方法

package 设计模式.模板方法模型;
//这是一个测试主类
public class Test {
    public static void main(String[] args) {
//        创建一个对象p,用于调用方法
        Pattern p = new ClassA();
        p.tempLate();

        //给p重新赋值
        p = new ClassB();
        p.tempLate();
    }
}

运行结果展示:
在这里插入图片描述
以上就是模板方法模式的Java代码实现

以上是关于大话设计模式-模板方法模式(大鸟和小菜Java版)的主要内容,如果未能解决你的问题,请参考以下文章

大话设计模式-代理模式(大鸟和小菜Java版)

简单工厂模式--(大话设计模式大鸟和小菜Java版)

大话设计模式-原型模式(大鸟和小菜java版)

大话设计模式-适配器模式(大鸟和小菜Java版)

大话设计模式-状态模式(大鸟和小菜Java版)

大话设计模式-建造者模式(大鸟和小菜java版)