-
工厂模式: 把对象的创建过程, 封装到工厂中. 通过工厂的静态方法去创建对象. 如果要切换实现类, 那么只需要改工厂类的代码即可. SpringIOC核心就是工厂模式, 把所有的bean都放在了spring容器里, 如果要使用这个bean , 那么从Spring容器里面拿就行了, 不需要自己去创建对象.
-
单例模式: spring默认对每个类都是使用的单例模式, 确保一个类在系统运行期间,只有一个实例对象, 只有一个bean. 代码示例
package com.thread.jmm;
/**
* 类名称:Singleton1
* 类描述: 双重检查 (推荐面试使用 )
*
* @author: https://javaweixin6.blog.csdn.net/
* 创建时间:2020/9/6 19:26
* Version 1.0
*/
public class Singleton6 {
private volatile static Singleton6 INSTANCE ;
/**
* 单例模式的构造方法都是私有的, 防止其他对象new
*/
private Singleton6() {
//完成初始化等操作...
}
/**
* 返回单例模式对象
* @return
*/
public static Singleton6 getInstance() {
if (INSTANCE == null) {
synchronized (Singleton6.class) {
//再次检查INSTANCE是否已经被实例化了.
if (INSTANCE == null) {
INSTANCE = new Singleton6();
}
}
}
//如果不是空, 则直接返回实例.
return INSTANCE;
}
}
- 代理模式: 对一些类的方法切入一些增强的代码, 会创建一些动态代理对象, 让你对那些目标对象的访问, 先经过动态代理对象, 动态代理对象,先做一些增强的代码, 调用你的目标对象的代码. 代理目标对象, 做一些增强的访问.