1、简单工厂模式(Factory)
应用场景:又叫做静态工厂方法(StaticFactory Method)模式,但不属于 23 种设计模式之一。
简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。
Spring 中的 BeanFactory 就是简单工厂模式的体现,根据传入一个唯一的标识来获得 Bean 对象,但
是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定
2、工厂方法模式(Factory Method)
应用场景:通常由应用程序直接使用 new 创建新的对象,为了将对象的创建和使用相分离,采用工厂模
式,即应用程序将对象的创建及初始化职责交给工厂对象。
一般情况下,应用程序有自己的工厂对象来创建 Bean.如果将应用程序自己的工厂对象交给 Spring 管
理,那么 Spring 管理的就不是普通的 Bean,而是工厂 Bean。
如spring中的 FactoryBean 是用来管理产生 Bean 的 BeanFactory 的
3、单例模式(Singleton)
应用场景:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
Spring 中的单例模式完成了后半句话,即提供了全局的访问点 BeanFactory。但没有从构造器级别去
控制单例,这是因为 Spring 管理的是是任意的 Java 对象。 Spring 下默认的 Bean 均为单例。
常用单例模式写法:饿汉式、懒汉式、注册式、序列化。