⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 heartmodel.java

📁 深入浅出设计模式
💻 JAVA
字号:
package headfirst.combined.djview;import java.util.*;public class HeartModel implements HeartModelInterface, Runnable {	ArrayList beatObservers = new ArrayList();	ArrayList bpmObservers = new ArrayList();	int time = 1000;    int bpm = 90;	Random random = new Random(System.currentTimeMillis());	Thread thread;	public HeartModel() {		thread = new Thread(this);		thread.start();	}	public void run() {		int lastrate = -1;		for(;;) {			int change = random.nextInt(10);			if (random.nextInt(2) == 0) {				change = 0 - change;			}			int rate = 60000/(time + change);			if (rate < 120 && rate > 50) {				time += change;				notifyBeatObservers();				if (rate != lastrate) {					lastrate = rate;					notifyBPMObservers();				}			}			try {				Thread.sleep(time);			} catch (Exception e) {}		}	}	public int getHeartRate() {		return 60000/time;	}	public void registerObserver(BeatObserver o) {		beatObservers.add(o);	}	public void removeObserver(BeatObserver o) {		int i = beatObservers.indexOf(o);		if (i >= 0) {			beatObservers.remove(i);		}	}	public void notifyBeatObservers() {		for(int i = 0; i < beatObservers.size(); i++) {			BeatObserver observer = (BeatObserver)beatObservers.get(i);			observer.updateBeat();		}	}	public void registerObserver(BPMObserver o) {		bpmObservers.add(o);	}	public void removeObserver(BPMObserver o) {		int i = bpmObservers.indexOf(o);		if (i >= 0) {			bpmObservers.remove(i);		}	}	public void notifyBPMObservers() {		for(int i = 0; i < bpmObservers.size(); i++) {			BPMObserver observer = (BPMObserver)bpmObservers.get(i);			observer.updateBPM();		}	}}

⌨️ 快捷键说明

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