H2數據庫引擎源代碼研究-TCP服務器,進入TCP服務器的代碼。
從代碼上看,H2數據庫的源代碼編寫也不是很規範,很多地方的代碼都沒有詳細的註釋,這點讓我覺得很遺憾,直接對H2數
據庫的質量產生了懷疑,由於沒有註釋,對源代碼的閱讀造成了一些障礙。
使用ArgoUml將H2的源代碼反向工程得到類圖。頂層包圖結構如下:
數據庫的程序入口在包tools裏的Server類裏面,這個包裏的類都是些工具類。而各種服務器的代碼卻是在包server裏面,進入包server裏的類圖如下:
圖中的類TcpServer就是Tcp服務器,可是進入該類後對所有的屬性,方法類均沒有任何的註釋,這讓學習的人確實帶來不少麻煩,我不知道H2開發組內部是不是設計文檔,
否則這樣沒有任何註釋的代碼我不知道他們是如何維護的。從圖中可以看出TcpServer實現了接口Service。
Service接口有這些方法。
void init(String[] args); //初始化服務的方法
String getURL(); //獲取URL字符串,我不知道這個URL是什麼意思?
void start();//開啓服務
void listen();//監聽服務
void stop();//關閉服務
boolean isRunning();//獲取服務的狀態,服務是否在運行
boolean getAllowOthers();//不知道是什麼意思,好像是是否預習懷其它,什麼意思?
String getName();//獲取名字,什麼名字?
String getType();//獲取服務類型。
因爲沒有任何註釋,所以只能從字面意思猜測各方法的含義了。