在Spring 当中存在的八大模式
在Spring 当中存在的八大模式@
目录
[*]在Spring 当中存在的八大模式
[*]每博一文案
[*]1. 简单工厂模式
[*]2. 工厂方法模式
[*]3. 单例模式
[*]4. 代理模式
[*]5. 装饰器模式
[*]6. 观察者模式
[*]7. 策略模式
[*]8. 模板方法模式
[*]最后:
每博一文案
我认为 “知世故而不世故” 才是真正意义上的成熟。
回归到小孩子的纯真和本心,经过岁月的洗礼和自我挣扎,兜兜转转,最后回归本我,找回初心。
然而“初心是什么?”
是小孩子的本性?是不畏惧他人眼光勇于做自己?是抛开世俗的观念,兜兜转转绕回到原点的真实?还是和想爱的人在一起因为三观而非其他?是不把他人的想法驾凌在自己之上,是回归到本我?
真正的勇敢,是在这现实的世界里,理性浪漫主义般的活着。
理想主义的可爱会让一个人不那么世俗化。而非世俗化就会显得不世故,在一些人看来就是不成熟,于是就幼稚了。无论“幼稚”还是“成熟”,本质上都是每个人基于自己的个性特点和社会环境,所作出的选择。
它意味着你能承担“幼稚”或“成熟”所带来的风险与损失,也努力追求它所带来的收益与快乐。
如果我们承认,人和人与生俱来的不一样。也承认,在一个发达的现代社会,我们可以以无数种方式去获得成功。甚至,连成功的定义,都可以由自己决定。那么,我们的生命应该会活得自由、珍重,而更有质感一点点吧。在 Spring 当中存在着如下23种设计模式当中的 八大模式
[*]简单工厂模式
[*]工厂方法模式
[*]单例模式
[*]代理模式
[*]装饰器模式
[*]观察者模式
[*]策略模式
[*]模板方法模式
1. 简单工厂模式
BeanFactory 的 getBean() 方法,通过唯一的标识来获取 Bean 对象,就是典范的简单工厂模式(静态工厂模式) 。简单工厂模式步属于23种设计模式的任何一种.
想要进一步,学习工厂方法模式,大家可以移步至:✏️✏️✏️ GoF之工厂模式-CSDN博客
2. 工厂方法模式
FactoryBean 是典范的工厂方法模式,在配置文件种通过 factory-method 属性来指定工厂方法,该方法时一个实例方法。
想要进一步,学习工厂方法模式,大家可以移步至:✏️✏️✏️ GoF之工厂模式-CSDN博客
3. 单例模式
Spring 用的是双重判断加锁的单例模式,请看下面代码:
https://img2024.cnblogs.com/blog/3084824/202405/3084824-20240520224634941-344549303.png
由于单例模式,涉及的篇幅过多,大家可以移步至:✏️✏️✏️ 23种设计模式:单例设计模式(饿汉式 VS 懒汉式)_单件模式 饿汉式csdn-CSDN博客
4. 代理模式
Spring的 AOP 就是利用动态代理实现的。
想要进一步,更加深入的相识代理模式,大家可以移步至:✏️✏️✏️ GoF之代理模式(静态代理+动态代理(JDK动态代理+CGLIB动态代理带有一步一步详细步骤))-CSDN博客
5. 装饰器模式
JavaSE中的IO流黑白常典范的装饰器模式。
Spring 中配置 DataSource 的时候,这些dataSource大概是各种不同类型的,好比不同的数据库:Oracle、SQL Server、MySQL等,也大概是不同的数据源:好比apache 提供的org.apache.commons.dbcp.BasicDataSource、spring提供的org.springframework.jndi.JndiObjectFactoryBean等。
这时,能否在尽大概少修改原有类代码下的情况下,做到动态切换不同的数据源?此时就可以用到装饰者模式。
Spring根据每次请求的不同,将dataSource属性设置成不同的数据源,以到达切换数据源的目的。
Spring中类名中带有:Decorator和Wrapper单词的类,都是装饰器模式。
6. 观察者模式
定义对象间的一对多的关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到关照并自动更新。Spring中观察者模式一般用在listener的实现。
Spring中的事件编程模型就是观察者模式的实现。
在Spring中定义了一个ApplicationListener接口,用来监听Application的事件,Application其实就是ApplicationContext,ApplicationContext内置了几个事件,此中比较容易明白的是:ContextRefreshedEvent、ContextStartedEvent、ContextStoppedEvent、ContextClosedEvent
7. 策略模式
策略模式是举动性模式,调用不同的方法,适应举动的厘革,强调父类的调用子类的特性。
getHandler 是 HandlerMapping 接口中的唯一方法,用于根据请求找到匹配的处理器。
好比我们自己写了 AccountDao 接口,然后这个接口下有不同的实现类:AccountDaoForMySQL,AccountDaoForOracle。对于service 来说不需要关心底层具体的实现,只需要面向 AccountDao 接口调用,底层可以灵活切换实现,这就是策略模式。
8. 模板方法模式
Spring 中的 JdbcTemplate 类就是一个模板类。
它就是一个模板方法设计模式的体现,在模板类的模板方法 execute() 中编写核心算法,具体的实现步骤在子类中完成。想要进一步相识,模板方法模式,大家可以移步至:✏️✏️✏️ 23种设计模式之 : 模板方法设计模式_模板实例的设计模式有哪些-CSDN博客
最后:
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继承在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
https://img2024.cnblogs.com/blog/3084824/202405/3084824-20240520224634648-1625995125.gif
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]