Spring源码分析(二)——常用设计模式

代理模式:事情必须做,而自己没有时间做或者不想做。必须持有被代理对象的引用。包括静态代理和动态代理两种代理方式。生活中的场景如火车票代买、签证办理等一系列中介类似的活动。在Spring中的体现有JDK动态代理和cglib动态代理等。

工厂模式:隐藏复杂的逻辑处理过程,只关心结果。需要告知工厂生产的产品。包括简单工厂,工厂方法和抽象工厂三种。生活中的场景如生产某指定纸制品和从4s店提一辆BWM车等。Spring的整体架构BeanFactory即是一个大的抽象工厂模式。

单例模式:保证从系统启动到系统停止全过程只会产生一份实例。包括懒汉、饿汉等八种设计模式。生活中的场景如人等。Spring的IOC容器就是一个单例模式最好的体现。

委派模式:与中介的委托机制类似,也持有被委托人的引用。与代理模式的区别在于,代理模式需要关注过程,委托模式只关注结果。Spring中委派模式随处可见,父类的某个XXX()方法和子类的doXXX()方法。

策略模式:有不同的处理过程,但处理的结果都是一样。生活中的场景如按照某一国家标准生产生产出来的同一产品等。Spring中使用两种动态代理来实现DI。

原型模式:过程相同,但产生的结果不一样。生活中的场景如同样的原材料生产的产品总会出现部分残次品。Spring中生产Bean则是比较好的体现。

 

你可能感兴趣的:(Spring源码分析)