国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Head First_設(shè)計模式_觀察者模式

2019-11-08 02:14:07
字體:
供稿:網(wǎng)友
package Obseiver;public interface Subject {	public void register(Obseivers o);	public void delete(Obseivers o);	public void notifyAllSubeject();}
package Obseiver;public interface Obseivers {	public void update(float wendu, float fengji);}
package Obseiver;public interface Display {	public void display();}
package Obseiver;import java.util.ArrayList;public class WeaterDate implements Subject {	// 建立一個用戶觀察者的數(shù)組	PRivate ArrayList obseiverss;	// 建立三個更新的變量	private float WenDu;	private float FengJi;	// 空的構(gòu)造方法	public WeaterDate() {		obseiverss = new ArrayList();	}	public void register(Obseivers o) {		// TODO Auto-generated method stub		obseiverss.add(o);	}	@Override	public void delete(Obseivers o) {		// TODO Auto-generated method stub		int indexId = obseiverss.indexOf(o);		if (indexId >= 0) {			obseiverss.remove(indexId);		}	}	// 這里有一個設(shè)置狀態(tài)的方法	public void setStatements(float wendu, float fengji) {		this.WenDu = wendu;		this.FengJi = fengji;		changed();	}	private void changed() {		// TODO Auto-generated method stub		notifyAllSubeject();	}	@Override	public void notifyAllSubeject() {		// 提醒所有的觀察者,更新信息!		for (Object obseiver : obseiverss) {			Obseivers o = (Obseivers) obseiver;			o.update(WenDu, FengJi);		}	}}
package Obseiver;public class Obseiver_one implements Obseivers, Display {	// 先聲明成員變量	private float wendu;	private float fengji;	private WeaterDate weaterDate;// 這里設(shè)置成成員變量的原因是方便后來可能的取消注冊	// 在構(gòu)造方法里面祖冊	public Obseiver_one(Subject weaterDate) {		weaterDate = (WeaterDate) weaterDate;		weaterDate.register(this);	}	@Override	public void update(float wendu, float fengji) {		// TODO Auto-generated method stub		// 更新數(shù)據(jù)		this.wendu = wendu;		this.fengji = fengji;		display();	}	@Override	public void display() {		// TODO Auto-generated method stub		System.out.println("風(fēng)級是:" + fengji + "溫度是:" + wendu + "!");	}}
package Obseiver;public class Test {	public static void main(String[] args) {		// TODO Auto-generated method stub		WeaterDate weaterDate = new WeaterDate();		Obseiver_one obseiver_one = new Obseiver_one(weaterDate);		weaterDate.setStatements(100, 123);		try {			Thread.sleep(1000);		} catch (InterruptedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		weaterDate.setStatements(111, 123);		try {			Thread.sleep(1000);		} catch (InterruptedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		weaterDate.setStatements(222, 123);	}}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 仁怀市| 开江县| 青海省| 宝清县| 会理县| 会昌县| 土默特左旗| 铅山县| 昭平县| 甘德县| 娄烦县| 兴城市| 湖南省| 扶绥县| 莆田市| 泾源县| 闽清县| 两当县| 琼结县| 孟州市| 固安县| 琼海市| 武强县| 余姚市| 竹溪县| 叶城县| 泾阳县| 贺兰县| 嘉鱼县| 大田县| 大厂| 志丹县| 东乡| 碌曲县| 长乐市| 深圳市| 吴川市| 修武县| 团风县| 治多县| 白朗县|