平常的系統中,報警是不可缺乏的一環,目前報警方式不少,最多見的有直接打日誌,微信報警,短信報警,郵件報警等;而涉及到報警,通常不可避免的須要提早設置一些基本信息,如報警方式,報警頻率,報警用戶,開關等;java
另一個常見的問題是通常採用的是單一的報警方式,好比無論什麼類型的報警所有都用短信方式觸達,而後就會發現手機時常處於被淹沒的狀態了,長此以往對報警短信就不會敏感了git
所以咱們準備設計一個通用的報警框架github
總體來講,報警主要能夠劃分爲三個步驟,以下:微信
從任務劃分上來看,比較清晰簡單,可是每一塊的內容又必須能夠拓展,架構
選擇報警:框架
ConfLoader
ConfChangeTrigger
ConfParse
: 解析文本格式報警規則爲業務對象AlarmSelector
:根據報警規則和報警類型,選擇具體報警執行器 AlarmExecute
執行報警:學習
根據上面的拆解,在應用啓動的時候,就有一些事情必須去作了ui
下圖顯示在應用啓動時,報警規則解析的相關步驟線程
至於報警執行器的加載就比較簡單了,以下圖設計
所以,整個的工做流程以下圖
經過前面的任務設計以後,對須要作的東西有了一個大概的脈絡了,所以在正式操刀實現以前,下對整個架構進行任務拆解,看下能夠具體的執行步驟能夠怎麼來
AlarmExecute
因此,經過上面的分析能夠看出,這個系統的結構仍是蠻簡單的,整個只須要四個部分就能夠搞定,其中最主要的就是前面兩個了,後面將分別說明
作一個東西,固然是但願能夠帶來一些用處,或者能學習到什麼東西,纔不枉花費精力來折騰一下,那麼咱們這個報警系統,究竟有什麼用,或者能夠從中學習到什麼東西呢?
用途:
學習:
拋開特有的知識點,能夠抽象一些公共可用的地方,大概就下面這兩點了
盡信書則不如,已上內容,純屬一家之言,因本人能力通常,看法不全,若有問題,歡迎批評指正