??Spring框架中使用了多種設計模式來構建其強大且靈活的功能,這里舉例說明Spring中的一些功能使用到的設計模式。
- 工廠模式:Spring容器本質是一個大工廠,使用工廠模式通過BeanFactory和ApplicationContext這兩個核心接口來創建和管理bean對象。
- 代理模式 :Spring AOP(面向切面編程) 功能就是通過代理模式來實現的,分為動態代理和
靜態代理。 - 單例模式 :在Spring中,Bean的默認作用域就是單例(singleton)。
- 模板模式 :Spring框架中提供了許多以Template結尾的模板類,比如JdbcTemplate(簡化JDBC操作的模板類)、RedisTemplate(簡化Redis的數據訪問操作的模板類)等就使用到了模板模式。
- 觀察者模式 :Spring的事件機制就應用了觀察者模式,一個事件可以有多個監聽器(觀察者)。當某個事件(被觀察者)被觸發時,所有訂閱了該事件的監聽器(觀察者)都會收到通知。
- 適配器模式 :Spring MVC中的一個關鍵組件HandlerAdapter,就應用了適配器模式,將不同類型的處理器(Controller、HttpRequestHandler或Servlet等)適配到統一的請求處理流程中,使得Spring MVC可以通過一個統一的接口來處理來自不同處理器的請求。
- 策略模式:Spring中的Resource接口就使用到了策略模式,它的不同實現類會根據不同的策略去訪問資源。