public class FirstTeam implements NotifyListener {
@Override
public void notifyTeam(String msg) {
System.out.println("第一组得到消息:" + msg);
System.out.println("第一组不打牌了,开始工作了!!!");
}
}
public class SecondTeam implements NotifyListener{
@Override
public void notifyTeam(String msg) {
System.out.println("第二组得到消息:"+msg);
System.out.println("第二组不看视频,开始工作了!!!");
}
}
public class ThirdTeam implements NotifyListener{
@Override
public void notifyTeam(String msg) {
System.out.println("第三组得到消息:"+msg);
System.out.println("第三组不嗑瓜子了,开始工作了!!!");
}
}
public interface NotifyListener {
void notifyTeam(String msg);
}
public class Manager {
//把要求去观察的对象存放到一个容器当中
List<NotifyListener>list = new ArrayList<>();
//保证观察者观察到的对象是统一
private static Manager manager = new Manager();
public static Manager getTeacher(){
return manager;
}
//获取观察者集合
public List<NotifyListener> getNotifys(){
return list;
}
//注册用户
public void registerUser(NotifyListener listener){
list.add(listener);
}
//移除用户
public void removeUser(NotifyListener listener){
list.remove(listener);
}
public void come(){
for (NotifyListener listener : list) {
listener.notifyTeam("主管气势汹汹的来了");
}
}
}
public class Test {
public static void main(String[] args) {
FirstTeam ft = new FirstTeam();
SecondTeam st = new SecondTeam();
//获取被观察者
Manager manager = Manager.getTeacher();
manager.registerUser(ft);
manager.registerUser(st);
manager.come();
}
}