WEB开发网
开发学院软件开发Java Tomcat 系统架构与设计模式,第 2 部分: 设计模式... 阅读

Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析

 2010-05-31 00:00:00 来源:WEB开发网   
核心提示: 上面的结构图中,LifecycleListener 代表的是抽象观察者,Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析(3),它定义一个 lifecycleEvent 方法,这个方法就是当主题变化时要执行的方法,不需要去修改所有具体主题,因为所有具体主题的对观察者的操作都被代理给

上面的结构图中,LifecycleListener 代表的是抽象观察者,它定义一个 lifecycleEvent 方法,这个方法就是当主题变化时要执行的方法。 ServerLifecycleListener 代表的是具体的观察者,它实现了 LifecycleListener 接口的方法,就是这个具体的观察者具体的实现方式。Lifecycle 接口代表的是抽象主题,它定义了管理观察者的方法和它要所做的其它方法。而 StandardServer 代表的是具体主题,它实现了抽象主题的所有方法。这里 Tomcat 对观察者做了扩展,增加了另外两个类:LifecycleSupport、LifecycleEvent,它们作为辅助类扩展了观察者的功能。 LifecycleEvent 使得可以定义事件类别,不同的事件可区别处理,更加灵活。LifecycleSupport 类代理了主题对多观察者的管理,将这个管理抽出来统一实现,以后如果修改只要修改 LifecycleSupport 类就可以了,不需要去修改所有具体主题,因为所有具体主题的对观察者的操作都被代理给 LifecycleSupport 类了。这可以认为是观察者模式的改进版。

LifecycleSupport 调用观察者的方法代码如下:

清单 1. LifecycleSupport 中的 fireLifecycleEvent 方法

public void fireLifecycleEvent(String type, Object data) { 
  LifecycleEvent event = new LifecycleEvent(lifecycle, type, data); 
  LifecycleListener interested[] = null; 
  synchronized (listeners) { 
    interested = (LifecycleListener[]) listeners.clone(); 
  } 
  for (int i = 0; i < interested.length; i++) 
    interested[i].lifecycleEvent(event); 
} 

上一页  1 2 3 4 5  下一页

Tags:Tomcat 架构

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接