原始碼解析之IModel的構造方法

2021-07-22 06:27:28 字數 635 閱讀 6873

廢話不多說,**奉上

接下來解釋一下它的構造方法在這裡幹了幾件事,

32行**,呼叫資料庫工廠類建立資料庫例項物件,往工廠類裡面追**可以發現是使用單例模式來例項化物件的

那麼他是如何來設計這個單例模式的呢?咱們來看一下,如下:

如上所示分析**可以看出,他的這個單例模式是通過以下幾點來實現的

1.定義私有的、靜態的成員變數來訪問例項物件

2.私有化構造方法(有時會加上final關鍵字),來防止類外通過new關鍵字來例項物件

3.私有化類的魔術方法--轉殖,來防止轉殖或者複製例項物件

4.定義公共的、靜態的成員方法getdb來讓資料庫工廠類可以例項化物件,在這個方法裡最主要的是要做判斷,儲存實力物件的成員變數是否為null

即是上圖29~33行,當然它這裡也做了一些資料庫型別及資料庫配置的判斷,這個並不影響單例模式的實現與否。

第二件事是做了個多表呼叫的model處理,關鍵字對傳入引數的判斷處理,精華在35到47行

Spring原始碼解析之 Aop原始碼解析(2)

spring aop 更多的是oop開發模式的乙個補充,幫助oop以更好的方式來解決對於需要解決業務功能模組之上統一管理 的功能 以一副圖來做為aop功能的說明更直觀些。對於類似系統的安全檢查,系統日誌,事務管理等相關功能,物件導向的開發方法並沒有更好的解決方法 aop引入了一些概念。更多的是spr...

原始碼解析 JDK原始碼之LinkedHashMap

linkedhashmap原始碼,基於 jdk1.6.43 他繼承了hashmap,並且實現了插入和訪問的有序功能 public class linkedhashmapextends hashmapimplements map 其也有乙個entry內部類,繼承了 hashmap 的entry 內部類...

hive原始碼解析之語法解析

hive語法解析器是根據 上次分享的 詞法分析 生成的語法樹為基礎,進行語法解析。根據語法token的情況實現了五個具體的語法解析器。在你生成語法器的時候,semanticanalyze ctory分別針對不同的情況生成對應的某個語法器,如下 semanticanalyze ctory類 現在有五個...