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