观察者模式_OBSERVER_案例详解 1、Obs erv er 案例 在23种设计模式中,观察者模式算是模式设计中的皇后,尤其是在我们做软件设计过的过程中所体现的更是立足无穷,再说它好,还不如来个实例不是更简单明了,我就把对其概念上的讲解以注释的方式写在代码注释中,如下所示: //首先我们需要先定义一个接口为:抽象观察者 public interface Watcher{ //再定义一个用来获取更新信息接收的方法 public void updateNotify(Content content); } //其次定义一个接口为:抽象被观察者 public interface Watched{ //在其接口中定义一个用来增加观察者的方法 public void add(Watcher watcher); //再定义一个用来删除观察者权利的方法 public void remove(Watcher watcher); //再定义一个可以实现行为变现并向观察者传输信息的方法 public void notifyWatcher(Content content); } //再次就是定义一个类为:具体观察者并实现其接口抽象观察者 public class ConcreteWatcher implements Watcher{ //并覆盖其方法 public void updateNotify(Content content){ int id = content.getId(); String name = content.getName(); String address = content.getAddress(); System.out.println("id:"+id++"/n name:"+name+"/n address:"+address); } } //最后就是定义一个类为:具体被观察者并实现其抽象接口抽象被观察者 public class ConcreteWatched implements Watched{ //定义一个 List来封装 Watcher private List list = new ArrayList(); //并覆盖其方法 public void add(Watcher watcher){ list.add(watcer); } public void remove(Watcher watcher){ list.remove(watcher); } public void notifyWatcher(Content content){ for(Watcher watcher : list){ watcher.updateWatcher(content); } } } //以面向对象的方式来操作,需要定义一个实体来进行操作 public class Content{ private int id; private String name; private String address; public void setId(int id){ this.id = id; } public int getId(){ return id; } public void setName{String name}{ this.name = name; } public String getName(){ return name; } public void setAddress(String address){ this.address = addres...