4、Spring AOP与代理模式
Spring AOP就是在某些对象的某些方法执行之前或之后,执行一段通用代码,主要用于安全检查、权限判断、记录日志等通用操作,策略模式正是当某些方法被调用前先调用一个中间类即代理的某些方法,如通过 Spring InvocationHandler 的invoke方法调用需要的拦截器,实现应用中被大量使用的通用操作与其他操作的分离。
5、Spring HibernateTemplate与Facade 模式
Facade模式就是对底层方法的封装,提供简单接口方便上层使用,如HibernateTemplate中的方法就是封装了Hibernate的SessionFactory、Session、Query等方法。
6、Spring Ioc 与工厂模式
通过上面解耦与设计模式的分析,我们可以总结出,解耦的通用方法就是使用中间人实现调用者与被调用者的分离,这个中间人可以是类、接口甚至是配置文件比如XML。Spring IOC 就是通过XML文件管理对象之间的调用关系使其分离。
纵观整个软件架构的发展过程就是一个不断解耦的过程,正如同人类社会的发展。