我们可能见过这样的一种设计:创建一个对象,每当用户所关心的对象某个方面发生变化的时候,该对象负责通知该用户,在受关注的对象的时候通知用户的时候,用户去查询该对象的新状态,这样的设计意图也就是Observer模式的设计意图。
下面的代码能很清楚的说明Observer的设计意图:
服务器端的状态变化能通知所有注册的客户端,执行结果是:
Client1 server state:Closed
Client2 server state:Closed
我们看到所有的注册到服务器端的客户端都得到了通知。
其实在javaAPI中已经提供了Observable类,Observer接口来实现Observer设计模式目的,下面是关于这种方法的代码实例:
执行结果为
content:快过年了,大家可以休息了!
content:快过年了,大家可以休息了!
该种方法的实现原理和第一种方法其实差不多,只是java给我们完成了一些辅助功能。
好了。Observer模式介绍到这里,下一章我将介绍责任模式之Mediator。