=============观察者模式===============
顾名思义:我们好多客户端同时监控一个服务 如果服务发生了变化,那么我们所有客户端对应做出响应.
这样我们的代码就动起来了
=========代码=================
/*
* @类名 Server.java
* @作者 zx
* @创建日期 2016年9月9日
* @描述 抽象被观察者
*/
public abstract class Client {
//观察者聚集地
private List<Server> list = new ArrayList<Server>();
//新增观察者
public void addClient(Server client){
list.add(client);
}
//移除观察者
public void removeClient(Server client){
list.remove(client);
}
//通知所有观察者
public void notifyClients(){
for (Server client : list) {
client.print();
}
}
}
/**
* @类名 Server.java
* @作者 zx
* @创建日期 2016年9月12日
* @描述 抽象观察者
* @版本 V 1.0
*/
public interface Server {
public void print();
}
/**
* @类名 Server001.java
* @作者 zx
* @创建日期 2016年9月12日
* @描述 观察者简单实现类
* @版本 V 1.0
*/
public class Server001 implements Server {
public void print() {
System.out.println("server001收到");
}
}
测试代码
public class TestMain {
public static void main(String[] args) {
Client001 client001 = new Client001();
client001.addClient(new Server001());
client001.addClient(new Server002());
client001.addClient(new Server003());
client001.change();
}
}
结果:
Client001变了
server001收到
server002收到
server003收到