Spring源码中用到的设计模式
文中代码多是用于解释的伪代码,类图排版因为工具原因没有细细打磨,凑合用了。
耗时两周研究了这些设计模式,个人总结一下学习设计模式应该注意这些东西:
-
相关的OO(面向对象) 设计原则
-
首先搞清楚该模式的应用场景这非常重要
-
搞清楚类似设计模式的核心差异,个人认为这个最重要,当你能轻松且惬意的区分那些设计模式的异同的时候,就代表你开始掌握它们了,最起码在面试中只要不是问得太刁钻应该都难不倒你了。
1.策略模式
关注对象变化的部分,并抽取为接口,通过引用的方式拓展对象
面向对象设计原则:
- 针对接口编程而不是针对实现编程
- 多用组合少用继承
应当找出应用中可能需要变化的部分,把他们独立出来,不要和那些不需要变化的代码混在一起。
让我们描述一个例子,假如我们要设计一系列的哺乳动物类,他们都能跑run()、会say()、外观display();我们可以设计一个抽象类,Animal。
- 当需要一个Tiger老虎类时,继承Animal,并实现自己的say()(嗷嗷叫);display()(纹身的);
- 同理当需要狮子时,也需要继承Animal,实现say() (嗷嗷叫);display() (烫头的);
- 。。。。。每一个新的动物都需要去继承基类,并完成自己say、display。。。
利用 继承\接口 实现动物类
public class Dog extends Animal{
public Dog(String name){
super(name);
}
@Override
public void say(){
System.out.println("我会汪汪叫 ");
}
@Override
public void display(){
System.out.println("我有纯黑色的外观");
}
}
public class Cat extends Animal{
public Cat(String name){
super(name);
}
@Override
public void say(){
System

本文深入探讨了Spring框架中使用的设计模式,包括策略模式、观察者模式、装饰者模式、工厂模式(工厂方法和抽象工厂)、单例模式、适配器模式与外观模式、模板方法模式以及代理模式。通过实例分析了每种模式的核心思想、应用场景和优缺点,强调了理解设计模式的关键在于区分它们的异同,以及如何在实际项目中灵活运用。此外,文章还分享了学习设计模式应注意的面向对象设计原则。
974

被折叠的 条评论
为什么被折叠?



