1.每個包的作用以及描述
org.apache.ibatis
+ annotations 定義注解
+ binding 映射綁定,mapper.xml等映射文件相關實體抽象
+ builder 解析配置文件,以及映射文件竿音,包括xml,以及注解
+ cache 緩存,一級緩存谎砾,二級緩存
+ cursor 游標
+ datasource 數據源
+ exceptions 異常
+ executor 執(zhí)行器
+ io 資源加載相關IO操作
+ javassist
+ jdbc jdbc和sql相關
+ logging 日志模塊
+ mapping 配置文件-映射文件相關的類
+ ognl
+ parsing 解析配置文件和 核心類和 接口
+ plugin 插件
+ refection 反射
+ scripting 腳本解析相關
+ session 會話相關
+ transcation 事物
+ type 類型轉換
2.mybatis 整體架構(挑重點)
3.因為源碼用到了很多設計模式,這里解釋下用設計模式的好處
1 單一職責原則 (一個功能寫一個類捧颅,不要把什么都塞進一個類中景图,代碼臃腫)
一個類只負責一種職責,只有這種職責的改變會導致這個類的變更碉哑。繞口一點的正統(tǒng)說法:不要存在多于一個原因導致類變更
假如:類T 負責有兩種職責 P1挚币,P2;當P1發(fā)生改變時扣典,需要修改類T妆毕,這時候可能會對P2造成影響。
所以不要為了圖代碼量少贮尖,二將不同職責放入到一個類里面笛粘。
2 里氏替換原則
只要父類出現(xiàn)的地方,都可以用子類替換湿硝,并且不會對程序造成影響薪前,在實現(xiàn)上來說就是子類不要覆蓋父類的非抽象方法,但可以重載关斜。
重載時需要注意示括,入參的要求要比父類寬松(保證可以進入),返回要比父類更加嚴格(保證出去不會有問題)蚤吹,這也正是實現(xiàn)里氏替換的基礎例诀。
3 依賴倒置原則(面向接口編程)
高層模塊不應該依賴低層模塊,二者都應該依賴其抽象裁着,翻譯一下就是面向接口編程繁涂;接口一般是行為的集合,也就是盡可能的對行為抽象二驰。
抽象不應該依賴細節(jié)扔罪,細節(jié)應該依賴抽象。
4 接口隔離原則(接口功能單一)
翻譯一下就是接口的功能盡可能單一桶雀,接口本質上是兩個類之間關系的紐帶矿酵,關系中不需要有的唬复,在接口中不應該體現(xiàn)。如:A 通過接口I依賴B全肮,假如接口I中有A 不需要的方法敞咧,那么這個接口就是不合理的,B必須要實現(xiàn)這個不需要的方法辜腺,徒勞無功休建。
5 迪米特法則(最少知道原則)
也就是說一個對象要對其他對象保持盡可能少的了解,即低耦合性评疗,低耦合可以最大限度的保證代碼的可復用性测砂。這個實際上是針對被依賴的類來說的,對于被依賴的類百匆,盡可能的將復雜的邏輯封裝起來砌些,對外只提供public方法,外部不需要知道內部的邏輯加匈。
6 開閉原則(以前寫的東西存璃,最好不要動,做拓展就好)
盡量通過擴展來面對需求的更改或者系統(tǒng)的變化矩动,盡量不要對原有內容修改有巧。
后續(xù)展開對mybatis 從簡單的模塊到復雜的模塊講解,以及相關設計模式的回顧悲没。