前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式-模板方法模式

设计模式-模板方法模式

原创
作者头像
堕落飞鸟
发布2023-05-05 14:00:05
1890
发布2023-05-05 14:00:05
举报
文章被收录于专栏:飞鸟的专栏

模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤的具体实现延迟到子类中。模板方法模式在模板中定义了一系列的方法,其中有些方法是具体的,而有些方法是抽象的。抽象方法由子类实现,而具体方法则由父类实现。这种设计模式可以让子类在不改变算法结构的情况下重新定义算法中的某些步骤。

下面我们将通过一个具体的 Java 示例来说明模板方法模式的应用。

代码语言:javascript
复制
// 抽象类
abstract class AbstractClass {
    public void templateMethod() {
        step1();
        step2();
        step3();
    }

    public void step1() {
        System.out.println("AbstractClass step1");
    }

    public void step2() {
        System.out.println("AbstractClass step2");
    }

    public abstract void step3();
}

// 具体类
class ConcreteClass extends AbstractClass {
    public void step3() {
        System.out.println("ConcreteClass step3");
    }
}

在这个示例中,我们定义了一个 AbstractClass 抽象类,其中 templateMethod() 方法是模板方法,包含了一系列的步骤,其中的 step1()step2() 方法是具体的方法,它们有默认的实现。step3() 方法是抽象的方法,需要由具体的子类实现。我们还定义了一个具体的子类 ConcreteClass,它实现了 step3() 方法。在 main() 方法中,我们创建了一个 ConcreteClass 对象,并调用了它的 templateMethod() 方法。

运行上述代码,输出结果如下:

代码语言:javascript
复制
AbstractClass step1
AbstractClass step2
ConcreteClass step3

通过这个示例,我们可以看到,模板方法模式将算法的整个流程封装在一个抽象类中,具体实现则留给子类去完成。这种设计模式能够使得算法的框架与具体实现相分离,从而提高代码的可维护性和可重用性。

模板方法模式的优点在于,它可以让算法的整个流程框架固定下来,而具体实现则可以由子类自行完成,从而实现代码的重用和灵活性。另外,由于算法的框架是固定的,因此我们可以更加方便地进行算法的优化和改进。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档