Re: [問題] 請問java event的實現

看板java作者 (!H45)時間19年前 (2007/03/15 16:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/9 (看更多)
※ 引述《scdog (just do it)》之銘言: : public class A{ : private B b; : public A(){ : b = new B(); : } : } : public class B{ : public B(){ : } : public void doit(){ : } : } : 請問如何實現當class B自己發生doit()時, 通知class A發生了doit()事件 : 乾瞎! 這個問題像是:只要B的doit()被呼叫,就通知A 在class B的member field新增Class A的reference 然後在Class A的member method新增一個通知的方法 原程式碼會變成 public class A{ private B b; public A() { b = new B(); } // new member method: "update" 用來處理要通知的事項 public void update(...) { // TODO: 通知 A 的事項 } } public class B{ // new member field: "a" 作為要通知的對象 private A a; public B() {} public void doit() { // 在此通知 A: "doit() 被呼叫了" a.update(...); } } 如果要通知的物件太多,那麼可以考慮用一個容器去裝 另外,如果太多物件都要進行通知的動作,那麼可以考慮進行一般化 而這就是Observer Pattern http://java.sun.com/javase/6/docs/api/java/util/Observable.html http://java.sun.com/javase/6/docs/api/java/util/Observer.html -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.205.85
文章代碼(AID): #15-GHihG (java)
討論串 (同標題文章)
文章代碼(AID): #15-GHihG (java)