spring原始碼分析---策略模式
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class MyListTest {
public static void main(String[] args) {
new MyList().sort(new NumberComparator());
//策略模式:最後結果是一樣的,但是實現的過程不一樣
List<Long> numbers = new ArrayList<Long>();
Collections.sort(numbers, new Comparator<Long>() {
@Override
//返回值是固定的
//0 、-1 、1
//0 、 >0 、<0
public int compare(Long o1, Long o2) {
//中間邏輯是不一樣的
return 0;
}
});
}
}
策略模式:男生追女生,結果是一樣的,大部分都追到了,但是追的策略不一樣,怎麼樣才能追到女生呢。
相關推薦
spring原始碼分析---策略模式
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.ut
spring原始碼分析---策略模式、原型模式、模板模式
策略模式 —–> 用於回撥處理 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; p
Spring 原始碼分析-----委派模式(不關心過程,只關心結果)
兩個角色,受託人、委託人(社會上是平等關係) 公司裡面:專案經理,普通員工(法律上是平等的,工作的關係,各自的職責會不一樣) 幹活是我的,功勞是你的(最重要的特點) 專案經理(委託人):主要職責是安排任
spring原始碼分析,重新認識spring五(內功心法 從思想上說明 spring 常用的幾種設計模式,漫談)
動態代理:關注過程,關注的是整體的區域性,面向的切面思想。 抽象工廠:關注的是結果,隱藏實現 單例模式:整個環境內只有一個類,有餓漢和懶漢,餓漢即 類載入直接new 物件,懶漢 即使用的時候才new物件,比較有名的有 雙檢索 單例,因為直接用同步限制會導致每次取物件都是同步
Spring原始碼分析(二)——常用設計模式
代理模式:事情必須做,而自己沒有時間做或者不想做。必須持有被代理物件的引用。包括靜態代理和動態代理兩種代理方式。生活中的場景如火車票代買、簽證辦理等一系列中介類似的活動。在Spring中的體現有JDK動
Spring原始碼分析——除錯環境搭建(可能是最省事的構建方法)
1. 依賴工具 idea git jdk 1.8 + Gradle 2. 獲取原始碼 從github https://github.com/spring-projects/spring-framework 上 Fork 出屬於自己的倉庫。如果懶得這麼做也可以
Spring原始碼分析解讀
Spring原始碼分析解讀 如何檢視原始碼 Spring原始碼下載https://github.com/spring-projects/spring-framework/tags?after=v3.1.0.RC1 原始碼結構組織 Build-spring-f
Spring原始碼分析(十五)Spring中常用註解使用以及原始碼分析
從Java5.0開始,Java開始支援註解。Spring做為Java生態中的領軍框架,從2.5版本後也開始支援註解。相比起之前使用xml來配置Spring框架,使用註解提供了更多的控制Spring框架的方式。 現在越來越多的專案也都在使用註解做相關的配置,但Spring的註解非常多,相信
Spring原始碼分析(二)(IoC容器的實現)(1)
Ioc(Inversion of Control)——“控制反轉”,不是什麼技術,而是一種設計思想。在Java開發中,Ioc意味著將你設計好的物件交給容器控制,而不是傳統的在你的物件內部直接控制。理解好Ioc的關鍵是要明確“誰控制誰,控制什麼,為何是反轉(有
Spring原始碼分析:AOP分析(三)
個人扯淡部落格:http://blog.ztgreat.cn 前言 在上篇部落格中,分析了Spring Aop的Advice的實現過程,其中Spring對Advice 使用了介面卡模式,將Advice包裝成了Interceptor,在最後,我們通過Spring提供的
Spring原始碼之設計模式
一.代理模式 分為jdk代理和cglib代理。(前者實現介面,後者生成繼承) 1.兩個參與角色:執行者和被代理人 2.對於被代理人來說,這件事情是一定要完成的,但是自己又不想做或者沒有時間做,找代理。 3.需要獲取到被代理人的資料。 歸納:辦事要求人,所以找代理。 二.工廠模式 分為簡單工廠
Spring原始碼分析專題 —— 閱讀指引
閱讀原始碼的意義 更深入理解框架原理,印象更深刻 學習優秀的程式設計風格、程式設計技巧、設計思想 解決實際問題,如修復框架中的bug,或是參考框架原始碼,結合實際業務需求編寫一個獨有的框架 閱讀原始碼的方法 首先是要有一定的程式設計經驗。如果連業務程式碼都寫得不流暢那是不建議閱讀
Spring原始碼分析專題——目錄
Spring原始碼分析專題 —— 閱讀指引 IOC容器 Spring原始碼分析專題 —— IOC容器啟動過程(上篇) Spring原始碼分析專題 —— IOC容器啟動過程(中篇) Spring原始碼分析專題 —— IOC容器啟動過程(下篇) Spring原始碼
spring原始碼分析(二):外部配置檔案的載入
@PropertySource 和@Profile 簡介: @PropertySource:用在類上,載入一個(*.properties)的配置檔案 @Profile:用在類或者方法上,指定元件在哪個環境的情況下才能被註冊到容器中,不指定,任何環境下都能註冊這個元件 使用案例1-
spring原始碼分析(二):bean元件賦值
文章目錄 常用註解 @Value和@PropertySource 介紹 使用案例 @AutoWired、@Qulifer 、@Primary 介紹 使用總結
【spring原始碼分析】IOC容器初始化(二)
前言:在【spring原始碼分析】IOC容器初始化(一)中已經分析了匯入bean階段,本篇接著分析bean解析階段。 1.解析bean程式呼叫鏈 同樣,先給出解析bean的程式呼叫鏈: 根據程式呼叫鏈,整理出在解析bean過程中主要涉及的類和相關方法。 2.解析bean原始碼分
Java NIO學習筆記:結合原始碼分析+Reactor模式
Java NIO和IO的主要區別 下表總結了Java NIO和IO之間的主要差別,我會更詳細地描述表中每部分的差異。 IO NIO 面向流 面向緩衝 阻塞IO
Spring原始碼分析筆記--事務管理
核心類 InfrastructureAdvisorAutoProxyCreator 本質是一個後置處理器,和AOP的後置處理器類似,但比AOP的使用級別低。當開啟AOP代理模式後,優先使用AOP的後置處理器。 AopConfigUtils: /** * The bean name of the
Spring原始碼分析——BeanFactory體系之介面詳細分析
Spring原始碼分析——BeanFactory體系之介面詳細分析 Spring的BeanFactory的繼承體系堪稱經典。這是眾所周知的!作為Java程式設計師,不能錯過! 前面的博文分析了Spring的Resource資源類Resouce。今天開始分析Spring的
Spring原始碼分析:BeanFactory (二)
前言 在前面我們簡單的分析了BeanFactory的結構,ListableBeanFactory,HierarchicalBeanFactory,AutowireCapableBeanFactory。主要核心類DefaultListableBeanFactor