/**
观察者模式observer
当一个对象的状态发生改变时,该对象依赖的所有对象都被通知并自动更新
**/
public interface Message{
public void getMessage(String mode);
}
public class Computer implements Message{
private String mode = "computer";
public Computer(){
}
@override
public void getMessage(String s){
System.out.println(mode + s);
}
}
public class Phone implements Message{
private String mode = "phone";
public Phone(){
}
@override
public void getMessage(String s){
System.out.println(mode + s);
}
}
public class TextMessage{
List<Message> list = new ArrayList<>();
public TextMessage(){
}
public void addDevice(Message m){
list.add(m);
}
public void notifyDevices(){
for(Message m : list){
m.getMessage(" message is updated!!!");
}
}
}
public class Test{
public void main(String[] args){
Computer computer = new Computer();
Phone phone = new Phone();
TextMessage textMessage = new TextMessage();
textMessage.addDevice(computer);
textMessage.addDevice(phone);
textMessage.notifyDevices();
}
}