Spring框架中都用到了哪些设计模式?

Spring框架中都用到了哪些设计模式?

简单工厂:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。
Spring中的BeanFactory就是简单工厂模式的体现, 根据传入一个唯一的标识来获得Bean对象, 但是否是在传入参数后 创建还是传入参数前创建这不要根据具体情况来定。

工厂方法:
实现了Factory Bean接口的bean是一类叫做factory的bean, 其特点是, spring公在使用getBean()调用获得该 bean时,会自动调用该bean的getObject() 方法, 所以返回的不是factory这个bean, 而是这个bean.getOjbect() 方法的返回值。

单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
spring对单例的实现: spring中的单例模式完成了后半句话, 即提供了全局的访问点BeanFactory, 但没有从构造器 级别去控制单例, 这是因为spring管理的是任意的java对象。

适配器模式:
Spring定义了一个适配接口, 使得每一种contro11er有一种对应的适配器实现类, 让适配器代替contro11er执行相应 的方法。这样在扩展Contro11er时, 只需要增加一个适配器类就完成了Spring MVC的扩展了。

装饰器模式:动态地给一个对象添加一些额外的职责。就增加功能来说, Decorator模式相比生成子类更为灵活。
Spring中用到的包装器模式在类名上有两种表现:一种是类名中含有Wrapper, 另一种是类名中含有Decorator。

动态代理:
切面在应用运行的时刻被织入, 一般情况下, 在织入切面时, AOP容器会为目标对象创建动态的创建一个代理对象。 Spring AOP就是以这种方式织入切面的。 织入:把切面应用到目标对象并创建新的代理对象的过程。

观察者模式:
spring的事件驱动模型使用的是观察者模式, Spring中observer模式常用的地方是Listener的实现。

策略模式:
Spring框架的资源访问Resource接口, 该接口提供了更强的资源访问能力, Spring框架本身大量使用了Resource 接口来访问底层资源。

posted @   来自未来的信  阅读(144)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示