内容来自《Java 程序员面试笔试宝典 第2版》

1.工厂模式

工厂模式(Factory Pattern)是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。Spring中可以使用工厂模式通过BeanFactory或者ApplicationContext创建Bean对象。

简单工厂又称为静态工厂方法(StaticFactory Method)模式。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。例如以下代码就使用了简单工厂模式:

image.png

ProductA和ProductB通过@Qualifier来进行区分,使用的时候通过Product接口调用方法,只要更改配置,就能知道使用哪个“产品”。

2.单例模式

单例模式是指一个类全局只有一个实例,Spring框架中默认的Bean是单例的。

3.适配器模式

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。例如,旧的接口规范和新的接口调用方式不兼容,在这种情况下,可以在中间添加一个适配器,适配器提供新的接口调用方式,但是在内部使用的是旧的接口。Spring AOP模块对BeforeAdvice、AfterAdvice和ThrowsAdvice三种通知类型的支持实际上是借助适配器模式来实现的。Spring中以Adapter结尾的类都是使用了适配器模式,例如AdvisorAdapter,示例代码如下: