当前位置: 技术问答>java相关
关于Observable如何实现同时对两个对象的监听
来源: 互联网 发布时间:2017-04-09
本文导语: 我的代码: import java.util.*; public class ooo extends Observable { String s = null; String s1 = null; String s2 = null; public String change(String s) { this.s = s; return s; } public void a() { Obse...
我的代码:
import java.util.*;
public class ooo extends Observable
{
String s = null;
String s1 = null;
String s2 = null;
public String change(String s)
{
this.s = s;
return s;
}
public void a()
{
Observable r = new Observable();
//改变三个参数的值,s1和s2是同时变化的
s = change("1111");
//设置检测点
setChanged();
r.notifyObservers(s); //如果s1发生变化,那么执行相应的操作
s1 = change("2222");
//设置检测点
setChanged();
notifyObservers(s1); //如果s1发生变化,那么执行相应的操作
}
public static void main(String[] args)
{
ooo o = new ooo();
o.addObserver(new o());
o.addObserver(new oo());
o.a();
}
}
-------------------------------------------------------------------------
import java.util.*;
public class oo implements Observer
{
public void update(Observable o,Object arg)
{
System.out.println("change in oo......");
}
}
--------------------------------------------------------------------
import java.util.*;
public class o implements Observer
{
public void update(Observable o,Object arg)
{
System.out.println("change in o......");
}
}
我想让s和s1发生变化时,会执行不同的操作,就是当s变化时执行o.update(),当s1变化时执行oo.update(),我该怎么办呀????
import java.util.*;
public class ooo extends Observable
{
String s = null;
String s1 = null;
String s2 = null;
public String change(String s)
{
this.s = s;
return s;
}
public void a()
{
Observable r = new Observable();
//改变三个参数的值,s1和s2是同时变化的
s = change("1111");
//设置检测点
setChanged();
r.notifyObservers(s); //如果s1发生变化,那么执行相应的操作
s1 = change("2222");
//设置检测点
setChanged();
notifyObservers(s1); //如果s1发生变化,那么执行相应的操作
}
public static void main(String[] args)
{
ooo o = new ooo();
o.addObserver(new o());
o.addObserver(new oo());
o.a();
}
}
-------------------------------------------------------------------------
import java.util.*;
public class oo implements Observer
{
public void update(Observable o,Object arg)
{
System.out.println("change in oo......");
}
}
--------------------------------------------------------------------
import java.util.*;
public class o implements Observer
{
public void update(Observable o,Object arg)
{
System.out.println("change in o......");
}
}
我想让s和s1发生变化时,会执行不同的操作,就是当s变化时执行o.update(),当s1变化时执行oo.update(),我该怎么办呀????
|
在Observable对象中设置一个标志不就行了吗
在Observer的update中,判断适合于自己的标志,若不合适就不要处理
在Observer的update中,判断适合于自己的标志,若不合适就不要处理
|
如果以這樣的方式來處理,顯然,每個類中都要寫同樣的代碼.
本人認為用factory模式更好.
本人認為用factory模式更好.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。