您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 java實現發布訂閱者(java 設計模式之 觀察者模式(Observer))
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-25 03:27:40【】9人已围观
简介java設計模式之觀察者模式(Observer)//SubjectjavapackageyoungmastermodelObserver;/***@authoryoungmaster*@Email:y
java 設計模式之 觀察者模式(Observer)
//Subject java
package youngmaster model Observer;
/
*** @author youngmaster
* @E mail:young * @version myEclipse
* @create time 上午 : :
*/
/
*** 察者模式屬于行為型模式 其意圖是定義對象間的一種一對多的依賴關系
* 當一個對象的狀態發生改變時 所有依賴于它的對象都得到通知并被自動更新
* 在制作系統的過程中 將一個系統分割成一系列相互協作的類有一個常見的副作用
* 需要維護相關對象間的一致性 我們不希望為了維持一致性而使各類緊密耦合
* 因為這樣降低了他們的可充用性 這一個模式的關鍵對象是目標(Subject)和觀察者(Observer)
* 一個目標可以有任意數目的依賴它的觀察者 一旦目標的狀態發生改變 所有的觀察者都得到通知
* 作為對這個通知的響應 每個觀察者都將查詢目標以使其狀態與目標的狀態同步 這種交互也稱為發布 訂閱模式
* 目標是通知的發布者 他發出通知時并不需要知道誰是他的觀察者 可以有任意數據的觀察者訂閱并接收通知
*/
/
*** subject
*目標接口
*/
public interface Subject {
public void addObserver(Observer o);
public void deletObserver(Observer o);
public void notice();
}
//Observer java
package youngmaster model Observer;
/
*** @author youngmaster
* @E mail:young * @version myEclipse
* @create time 上午 : :
*/
/
***觀察者接口
*/
public interface Observer {
public void update();
}
//Teacher java
package youngmaster model Observer;
import java util Vector;
/
*** @author youngmaster
* @E mail:young * @version myEclipse
* @create time 上午 : :
*/
/
***目標接口實現
*/
public class Teacher implements Subject {
private String phone;
@SuppressWarnings( unchecked )
private Vector students;
@SuppressWarnings( unchecked )
public Teacher() {
phone = ;
students = new Vector();
}
@SuppressWarnings( unchecked )
@Override
public void addObserver(Observer o) {
students add(o);
}
@Override
public void deletObserver(Observer o) {
students remove(o);
}
@Override
public void notice() {
for (int i = ; i < students size(); i++) { ((Observer) students get(i)) update();
}
}
public void setPhone(String phone) {
this phone = phone;
notice();
}
public String getPhone() {
return phone;
}
}
//Student java
package youngmaster model Observer;
/
*** @author youngmaster
* @E mail:young * @version myEclipse
* @create time 上午 : :
*/
/
***觀察者接口實現
*/
public class Student implements Observer {
private String name;
private String phone;
private Teacher teacher;
public Student(String name Teacher teacher) { this name = name; this teacher = teacher;
}
public void show() {
System out println( Name: + name + \nTeacher s phone: + phone);
}
@Override
public void update() {
phone = teacher getPhone();
}
}
//Client java
package youngmaster model Observer;
import java util Vector;
/
*** @author youngmaster
* @E mail:young * @version myEclipse
* @create time 上午 : :
*/
/
***測試類
*/
public class Client {
/
*** @param args
*/
@SuppressWarnings( unchecked )
public static void main(String[] args) {
Vector students = new Vector();
Teacher teacher = new Teacher();
for (int i = ; i < ; i++) {
Student student = new Student( student + i teacher); students add(student); teacher addObserver(student);
}
teacher setPhone( );
for (int i = ; i < ; i++)
((Student) students get(i)) show();
System out println( \n============================\n );
teacher setPhone( );
for (int i = ; i < ; i++)
((Student) students get(i)) show();
}
lishixin/Article/program/Java/gj/201311/27566
誰能介紹一下JAVA平臺開發中最長用的幾種設計模式~最好是通俗一些的并且有實例的~500分酬謝
例子很另類,不過還比較好懂
工廠模式, 工廠方法模式,單例模式, 外觀(Facade)模式, 觀察者(Observer)模式,橋接(Bridge)模式都是比較常用的,不同的項目有不同的設計方向,可以參考的設計模式也不盡相同,沒有定數,只是上面這幾個模式用的比較多一些。
其他的模式我找了一下,都列出來了。
======================
Java常用的設計模式
創建型模式
1、FACTORY—追MM少不了請吃飯了,麥當勞的雞翅和肯德基的雞翅都是MM愛吃的東西,雖然口味有所不同,但不管你帶MM去麥當勞或肯德基,只管向服務員說“來四個雞翅”就行了。麥當勞和肯德基就是生產雞翅的Factory
工廠模式:客戶類和工廠類分開。消費者任何時候需要某種產品,只需向工廠請求即可。消費者無須修改就可以接納新產品。缺點是當產品修改時,工廠類也要做相應的修改。如:如何創建及如何向客戶端提供。
2、BUILDER—MM最愛聽的就是“我愛你”這句話了,見到不同地方的MM,要能夠用她們的方言跟她說這句話哦,我有一個多種語言翻譯機,上面每種語言都有一個按鍵,見到MM我只要按對應的鍵,它就能夠用相應的語言說出“我愛你”這句話了,國外的MM也可以輕松搞掂,這就是我的“我愛你”builder。(這一定比美軍在伊拉克用的
很赞哦!(314)
相关文章
- 06 上海昂越國際貿易有限公司(紐約四季大飯店的相關資料)
- 06 上海文展國際貿易有限公司網站(心物社(上海)文化發展有限公司怎么樣?)
- 06 上海外語出版社聽說教程1答案(學習商務英語基礎英語買什么書好)
- 02 對外經濟貿易大學民族預科班分數線(一本好學校的預科班有哪些大學)
- 06 上海外語教育出版社大學英語1(全新版大學進階英語綜合教程(1)課后習題答案 上海外語教育出版社出版)
- 06 上海杉達學院國際經濟與貿易專業是文科嗎(誰知道大學專業?)
- 06 上海外灘藝術中心185(上海有哪些外國歷史建筑,像武康大樓這樣的。)
- 02 對外經濟貿易大學匯智樓(對外經濟貿易大學宿舍條件,宿舍幾人間環境好不好(圖片))
- 02 對外經濟貿易大學畢業要求(對外經濟貿易大學是一所怎樣的學校?其畢業證含金量有多大?)
- 06 上海外灘小學生日記(小學生作文怎么寫呢?)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片
职业:程序员,设计师
现居:河北省石家庄正定县
工作室:小组
Email:[email protected]
热门文章
站长推荐
02 對外經濟貿易大學民族預科班選專業(對外經濟貿易大學2020年報考政策解讀)
02 對外經濟貿易大學民族預科班分數線(一本好學校的預科班有哪些大學)
06 上海外語教育英語綜合教程4(大學英語綜合教程4(上海外語教育出版社的)的課文翻譯及課后習題答案)
06 上海外灘旅游景點導游詞(上海各景點導游詞范本【5篇】)
02 對外經濟貿易大學匯忠公寓(求物業管理方面書籍名稱?)
02 對外經濟貿易大學畢業證封皮(對外經濟貿易大學網絡教育畢業申請通過后多久給畢業證)
02 對外經濟貿易大學求知樓(北京文理研修學院的學院評價)
02 對外經濟貿易大學求知樓是干什么的(福建農林大學園藝中加合作班怎么樣?誠懇請教!)