spring源码分析系列 (15) 设计模式解析
spring是目前使用最为广泛的Java框架之一。虽然spring最为核心是IOC和AOP,其中代码实现中很多设计模式得以应用,代码看起来简洁流畅,在日常的软件设计中很值得借鉴。以下是对一些设计模式的理解以及源码解析,希望能给大家对设计模式的理解有所帮助。 观察者模式:发布/订阅 更多设计模式更新中..... (基于spring-4.3.23.RELEASE分析) 1、观察者模式: 发布/订阅 如对观察者模式还不是很有概念,可以 点击这里 。spring中ApplicationEvent事件通知就是观察者模式的变种,巧妙的利用事件驱动机制实现容器刷新。开发者可充分利用该机制,实现框架的深度定制。下面分为几点展开: spring中实现观察者设计模式的各个角色。 容器刷新中使用到的事件。 依据spring机制实现事件的发布/订阅 定制化框架 。 (a) spring中实现观察者模式的各个角色: ApplicationEventMulticaster 是一个接口,定义了事件管理的基本行为,目前spring只有一个实现类和一个抽象类。这里先贴出定义理解各个角色的作用,后边一点点串联整个功能。 public interface ApplicationEventMulticaster { /** * 增加一个具体事件监听器 */ void addApplicationListener