您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 java 訂閱者模式(java設計模式-回調、事件監聽器、觀察者模式)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-18 11:05:59【】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設計模式呢?
1、FACTORY?追MM少不了請吃飯了,麥當勞的雞翅和肯德基的雞翅都是MM愛吃的東西,雖然口味有所不同,但不管你帶MM去麥當勞或肯德基,只管向服務員說“來四個雞翅”就行了。麥當勞和肯德基就是生產雞翅的Factory 工廠模式:客戶類和工廠類分開。消費者任何時候需要某種產品,只需向工廠請求即可。消費者無須修改就可以接納新產品。缺點是當產品修改時,工廠類也要做相應的修改。如:如何創建及如何向客戶端提供。
2、BUILDER?MM最愛聽的就是“我愛你”這句話了,見到不同地方的MM,要能夠用她們的方言跟她說這句話哦,我有一個多種語言翻譯機,上面每種語言都有一個按鍵,見到MM我只要按對應的鍵,它就能夠用相應的語言說出“我愛你”這句話了,國外的MM也可以輕松搞掂,這就是我的“我愛你”builder。(這一定比美軍在伊拉克用的翻譯機好賣) 建造模式:將產品的內部表象和產品的生成過程分割開來,從而使一個建造過程生成具有不同的內部表象的產品對象。建造模式使得產品內部表象可以獨立的變化,客戶不必知道產品內部組成的細節。建造模式可以強制實行一種分步驟進行的建造過程。
3、FACTORY METHOD?請MM去麥當勞吃漢堡,不同的MM有不同的口味,要每個都記住是一件煩人的事情,我一般采用Factory Method模式,帶著MM到服務員那兒,說“要一個漢堡”,具體要什么樣的漢堡呢,讓MM直接跟服務員說就行了。 工廠方法模式:核心工廠類不再負責所
很赞哦!(2)
相关文章
- 05 女騎士幫粉絲買摩托送頭盔(推薦你們覺得最好看的泰劇,有字幕的,)
- 05 天津自由貿易試驗區管委會主任(天津市三個自貿區都在什么地方)
- 05 太原網紅橋看紅葉的地方(太原有什么好玩的)
- 05 買粉絲 youtube app for iphone(英文翻譯~~謝謝~~)
- 05 天津潤丁國際貿易有限公司(誰才是輪胎界最有錢的人?)
- 05 download mp3 youtube app android(安卓手機root后怎么刪除軟件圖文詳細教程)
- 05 天津商業貿易與投資協會(中國(天津)自由貿易試驗區的基本情況)
- 05 facebook融資歷史及比例(如何看待雷軍坐擁四家上市公司,身家 1 天增百億,成中國第九富豪?)
- 05 買粉絲 youtube to mp3 買粉絲nverter and players philadelphia(NBA籃球介紹英文段落 快進)
- 05 facebook圖片如何保存高清(為什么現在的手機內存越來越大,但還總是不夠用?有哪些內存刺客app?)
热门文章
站长推荐
05 太平軍海外建立國家小說(穿越到太平天國時期的小說)
05 買粉絲 mp3 320kbps youtube(Marie.Digby.-.[Unfold].專輯 給個地址,最好無損,其次ogg,最次MP3 320k)
05 大陸訂閱heptabase的方法(構詞法巧記單詞基礎)
05 如何取消視頻彩鈴訂閱-酷電秀流量包(網絡推廣主要渠道有哪些,我說的是免費的。除了在自己網站發軟文還有別的嗎)
05 買粉絲 youtube music(如何在youtubemusic中創建快捷指令)
05 facebook驗證賬戶人臉進不去(lee買粉絲oper和lee是一個品牌嗎)
05 facebook股票價格(比爾蓋茨占有微軟多少股份?)
05 Forget Twitter and Facebook(急求JUSTIN BIEBER的BABY的中英文對照歌詞!查了好多,可后面那段RAP的歌詞還是不對!)