drumbeater.java

来自「《Java与模式》一书的源代码」· Java 代码 · 共 55 行

JAVA
55
字号
package com.javapatterns.chainofresp.flowerpassingthread;

import java.util.Timer;
import java.util.TimerTask;

public class DrumBeater
{
    private static Player firstPlayer;
    private static boolean stopped = false;
    private Timer timer;

    public static void main(String[] args)
    {
        DrumBeater drumBeater = new DrumBeater();

        JiaMu jiaMu = new JiaMu(null);

        jiaMu.setSuccessor(new JiaShe(
        new JiaZheng(
        new JiaBaoYu(
        new JiaHuan(jiaMu)))));

        drumBeater.startBeating(1);

        firstPlayer = jiaMu;
        firstPlayer.handle();

    }

    public void startBeating(int stopInSeconds)
    {
        System.out.println("Drum beating started...");

        timer = new Timer();
        timer.schedule(new StopBeatingReminder(), stopInSeconds * 1000);

    }

    public static boolean getStopped()
    {
        return stopped;
    }

    class StopBeatingReminder extends TimerTask
    {
        public void run()
        {
            System.out.println("Drum beating stopped!");
            stopped = true;
            timer.cancel(); //Terminate the timer thread
        }
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?