public interface Subject{
//增加观察者
public void attach(Observer observer);
//删除观察者
public void delete(Observer observer);
//通知观察者
public void notify(String msg);
}
实现Subject
public class ConcrereObserver implements Subject{
//储存观察者的集合
private List<Observer> observerList = new ArrayList<Observer>();
@Override
public void attach(Observer observer) {
observerList .add(observer);
}
@Override
public void detach(Observer observer) {
observerList .remove(observer);
}
@Override
public void notify(String message) {
for (Observer observer : observerList ) {
observer.update(message);
}
}
}
定义Observer
public interface Observer{
//更新消息
public void update(String msg);
}
实现Observer
public class ConcrereObserver implements Observer {
@Override
public void update(String message) {
System.out.println("观察者说:"+message);
}
}
调用下
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
public void init(){
ConcrereObserver observer1 = new ConcrereObserver();
ConcrereObserver observer2 = new ConcrereObserver();
ConcrereObserver observer3 = new ConcrereObserver();
ConcrereSubject subject = new ConcrereSubject();
subject.attach(observer1);
subject.attach(observer2);
subject.attach(observer3);
subject.notify("你们被包围了");
}
}