0
点赞
收藏
分享

微信扫一扫

观察者模式(一)

蒸熟的土豆 2022-11-04 阅读 177

package com.ygl.observer;

//抽象的主题角色

public interface Watched {

public void addWatcher(Watcher watcher);

public void removeWatcher(Watcher watcher);

public void notifyWatchers(String str);
}
//******************************************
package com.ygl.observer;
//抽象观察者
public interface Watcher {
public void update(String str);
}//**************************************
package com.ygl.observer;


import java.util.ArrayList;
import java.util.List;


public class RealWatched implements Watched{
private List<Watcher> list=new ArrayList<Watcher>();
@Override
public void addWatcher(Watcher watcher) {

list.add(watcher);
}


@Override
public void removeWatcher(Watcher watcher) {

list.remove(watcher);
}


@Override
public void notifyWatchers(String str) {

for(Watcher watcher:list){
watcher.update(str);
}
}


}//****************************************
package com.ygl.observer;


public class RealWatcher implements Watcher{


@Override
public void update(String str) {
System.out.println(str);

}


}//***********************************
package com.ygl.observer;


public class Test {
public static void main(String[] args) {
Watched girl=new RealWatched();

Watcher watcher1=new RealWatcher();
Watcher watcher2=new RealWatcher();
Watcher watcher3=new RealWatcher();
girl.addWatcher(watcher1);
girl.addWatcher(watcher2);
girl.addWatcher(watcher3);

girl.notifyWatchers("我很开心");

girl.removeWatcher(watcher2);
girl.notifyWatchers("不是很开心");
}

}

举报

相关推荐

0 条评论