框架分析--框架的类关系图
下面將呈現(xiàn)pomelo框架中,較為核心的非正規(guī)的類關(guān)系圖,先來看一下對類圖的一些說明:
-
由于javascript中實(shí)際上沒有類的概念,有的只是一個(gè)pseudo-class的概念,因此這個(gè)類關(guān)系圖中的類并不是與實(shí)際的pomelo框架中所定義使用的pseudo-class一一對應(yīng)。比如,HandlerFilter,在我們這個(gè)類圖中,它是一個(gè)抽象類,是所有HandlerFilter的基類。而在pomelo框架中,往往只是定義有after和before方法的類即可,而不用關(guān)心其所繼承的抽象類。
-
在類圖中,所有的組件,我們都冠以Co進(jìn)行命名,以表示其是一個(gè)組件。
-
在類圖中,定義了一個(gè)RawSocket,是把其作為了對通信層socket的一個(gè)抽象。在實(shí)際應(yīng)用中,可能是WebSocket,TCP的socket或者socket.io等等。所有與RawSocket相關(guān)的類,都是表示這個(gè)類在實(shí)際應(yīng)用中會(huì)直接參與通信,無論是與客戶端通信,還是與其他的服務(wù)器通過rpc進(jìn)行通信。
下面是我們的類圖:
下面對類圖進(jìn)行一些簡要的分析:
-
整個(gè)框架的核心為兩個(gè)類Pomelo和Application,Application實(shí)例由Pomelo創(chuàng)建。Pomelo實(shí)際上由一系列的組件以及一個(gè)全局的上下文Application組成。
-
所有的以Co開頭的都是相應(yīng)的組件,他們都是抽象類Component的子類,每一個(gè)組件都完成其相應(yīng)的功能,不同的服務(wù)器將加載不同的組件。這個(gè)類圖里面的組件都是pomelo內(nèi)建的組件,它們是為了完成pomelo的核心功能不可獲缺的組件,用戶可以通過定義自己的組件對pomelo進(jìn)行擴(kuò)展。
-
為了更好地展示pomelo中使用的各個(gè)類之間的關(guān)系,這個(gè)類圖中展示的相關(guān)類,不僅僅是pomelo這一個(gè)項(xiàng)目中定義的類,還包括pomelo-admin和pomelo-rpc中的相關(guān)類。
-
從類圖中可以看出,與通信相關(guān)的類有MasterAgent,MonitorAgent;MailBox,Acceptor以及connector。實(shí)際上,MasterAgent與MonitorAgent是對等的,MasterAgent充當(dāng)”服務(wù)端“,MonitorAgent充當(dāng)“客戶端”,MasterAgent會(huì)監(jiān)聽master配置的port,MonitorAgent會(huì)發(fā)起連接,它們之間的通信完成master服務(wù)器對應(yīng)用服務(wù)群的監(jiān)控和管理。MailBox和Acceptor的關(guān)系也與此類似,只不過它們之間的通信完成了框架的rpc調(diào)用。connector是用來接受客戶端連接的,因此connector會(huì)監(jiān)聽clientPort。
總結(jié)
以上是生活随笔為你收集整理的框架分析--框架的类关系图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios俩个APP之间跳转、传值
- 下一篇: 常用注入 Script 方法