首页 > 编程语言 >java 实现模板方法模式

java 实现模板方法模式

时间:2023-10-01 11:36:18浏览次数:37  
标签:java 子类 void 模式 Game println public 模板


模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个算法的骨架,将具体的步骤延迟到子类中实现。模板方法模式使得子类可以重新定义算法的某些步骤,而不改变算法的结构。

以下是一个简单的Java示例,演示如何实现模板方法模式:

首先,定义一个抽象类 Game,它包含一个模板方法 play 和一些基本方法,这些方法可以由子类实现:

public abstract class Game {
    public abstract void initialize();
    public abstract void startPlay();
    public abstract void endPlay();

    // 模板方法
    public final void play() {
        initialize();
        startPlay();
        endPlay();
    }
}

然后,创建具体的子类,继承自 Game,并实现基本方法:

public class Cricket extends Game {
    @Override
    public void initialize() {
        System.out.println("Cricket Game Initialized! Start playing.");
    }

    @Override
    public void startPlay() {
        System.out.println("Cricket Game Started. Enjoy the game!");
    }

    @Override
    public void endPlay() {
        System.out.println("Cricket Game Finished!");
    }
}

public class Football extends Game {
    @Override
    public void initialize() {
        System.out.println("Football Game Initialized! Start playing.");
    }

    @Override
    public void startPlay() {
        System.out.println("Football Game Started. Enjoy the game!");
    }

    @Override
    public void endPlay() {
        System.out.println("Football Game Finished!");
    }
}

最后,我们可以使用模板方法模式来执行不同的游戏:

public class TemplatePatternDemo {
    public static void main(String[] args) {
        Game cricket = new Cricket();
        cricket.play();

        System.out.println();

        Game football = new Football();
        football.play();
    }
}

在这个示例中,Game 类定义了一个模板方法 play,它调用了三个基本方法 initializestartPlayendPlay,这些方法由具体的子类实现。客户端代码只需要创建不同的游戏对象,然后调用它们的 play 方法即可。模板方法模式确保了算法的结构不变,但允许子类提供具体的实现。

模板方法模式通常用于定义一个算法的框架,而将一些步骤的具体实现留给子类来完成。这有助于减少代码重复,提高代码的可维护性。


标签:java,子类,void,模式,Game,println,public,模板
From: https://blog.51cto.com/u_13171517/7672433

相关文章

  • java面试题汇总
    Arrays.sort实现原理Arrays.sort()是Java中用于对数组进行排序的方法,它基于经过优化的归并排序(MergeSort)和插入排序(InsertionSort)的混合排序算法。Java使用了不同的排序算法,具体的选择取决于排序的对象类型和数组大小。以下是Arrays.sort()方法的一般工作原理:判断数组大小:如......
  • Java Arrays.fill() 方法详解
    在Java编程中,数组是一个非常常见的数据结构,而Java提供了许多有用的数组操作方法来简化开发过程。其中之一是Arrays.fill()方法,它允许我们填充一个数组的所有元素,将它们设置为指定的值。在本篇文章中,我们将深入探讨Arrays.fill()方法的用法、参数和示例,以帮助您更好地理解和使用它。......
  • 访问者模式
    访问者模式案例引入要求1.将观众分为男生和女生,对歌手进行评价,当看完某个歌手表演后,对于歌手有不同的评价(评价的类别,有成功,失败等)。传统方式实现思路创建一个Person类,其有两个子类,分别是Man和WoMan,使用ifelse分支,去判断一个歌手的评价,成功对应成功分支,失败对应失败分支。......
  • java中观察者模式的简单实现
    4要素:1观察者接口2具体的观察者3管理者接口4管理者实现类5调用1观察者接口包含观察者行为方法publicinterfaceObserver{/***当目标类发生变化时所执行的操作**/StringdoSomething();}2具体的观察者//具体观察者A@Slf4j@Component("ObserverA")pu......
  • 无涯教程-JavaScript - UNICHAR函数
    描述UNICHAR函数返回给定数字值引用的Unicode字符。语法UNICHAR(number)争论Argument描述Required/OptionalNumberNumberistheUnicodenumberthatrepresentsthecharacter.RequiredNotes返回的Unicode字符可以是字符串,如UTF-8或UTF-16代码。如果Unicod......
  • 无涯教程-JavaScript - T函数
    描述T函数返回值所引用的文本。语法T(value)争论Argument描述Required/OptionalValueThevalueyouwanttotest.RequiredNotes如果value是或引用文本,则T返回值。如果值不引用文本,则T返回""(空文本)。通常不需要在公式中使用T函数,因为MicrosoftExcel会根......
  • java实现策略模式
    策略模式(StrategyPattern)是一种行为型设计模式,它定义了一系列算法,将每个算法封装成单独的类,并使它们可以相互替换,以使算法的变化独立于客户端使用算法的方式。策略模式允许客户端选择不同的算法,以满足不同的需求。以下是一个简单的Java示例,演示如何实现策略模式:首先,定义一个策略接......
  • java实现观察者模式
    观察者模式(ObserverPattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生变化时,它的所有依赖者(观察者)都会收到通知并自动更新。观察者模式通常包括以下角色:主题(Subject)、观察者(Observer)、具体主题(ConcreteSubject)和具体观察者(ConcreteObserver)。以下是一......
  • java实现迭代器模式
    迭代器模式(IteratorPattern)是一种行为型设计模式,它提供一种方法来顺序访问一个聚合对象(如列表、集合、数组等)中的元素,而不暴露聚合对象的内部表示。迭代器模式通常包括以下角色:迭代器(Iterator)、具体迭代器(ConcreteIterator)、聚合(Aggregate)、具体聚合(ConcreteAggregate)。以下是一......
  • java实现解释器模式
    解释器模式是一种行为设计模式,它用于解释语言或表达式中的语法和语义。在解释器模式中,我们创建一个解释器类,该类包含解释表达式的方法,并为每种语法规则定义一个具体的表达式类。以下是在Java中实现解释器模式的一般步骤:创建一个抽象表达式类(AbstractExpression):该类定义了解释器的......