常用设计模式:工厂模式、单例模式、代理模式
spring ioc核心的设计模式的思想,就是工厂模式。
spring本身就是一个工厂,把所有的bean实例都给放在了spring容器里(大工厂),如果你要使用bean,就找spring容器就可以了,你自己不用创建对象了
1.工厂模式
将对象的创建过程放在一个Factory工厂类里,如果要使用的话,则通过该工厂类来直接获取
public class MyController{
private MyService myService = MyServiceFactory.getMyService();
}
public class MyServiceFactory{
public static MyService getMyService(){
return new MyServiceImpl();
}
}
2.单例模式
spring默认每个bean都是单例模式,确保一个类在系统运行期间只有一个实例对象,只有一个bean
DCL单例模式
public class MyController{
private static volatile MyService myService;
public static MyService getInstance(){
if(myService == null){
synchronized(MyService.class){
if(myService == null){
myService = new MyService();
}
}
}
return myService;
}
}
3.代理模式(有点含金量)
Spring中的AOP
对一些类的方法切入一些增强的代码,会创建一些动态代理的对象。
当访问目标对象时,先结果动态代理的对象,做一些增强的代码后,再调用目标对象