11中經常使用框架模式
1. 提供程序模式
- 使其功能變靈活。
- 實現延伸到外部,暴露給客戶端。
- 個性化擴展需求.
2. 鏈式編程模式
- 處理邏輯時流式,連貫的。
- 大的功能或者問題域分解爲小的問題,每一個問題域之間沒有先後依賴關係。
- 傳統方式或者擴展方法實現,傳統方法返回本this。
- 通常用於驗證處理。
3. 管道模式
- 抽象出一個邏輯管道,信息從一端進入,中間通過定製環節處理,從另外一端出去。
- 管道從複雜程度分爲帶有客戶端和服務端的凹形管道,通常處理複雜的消息處理,另外一種是類型隊列的直線管道模型,通常用來作消息推送。
- 管道根據類別又分爲自治管道和約定管道,自治管道各個組成模塊都由本身控制,有本身決定管道內部結構以及執行流程;約定管道有必定封裝邏輯,提供出來的接口和內部邏輯完成整個管道處理。使用中區別是自治管道本身往管道中添加委託對象,擴展點需求多變化時使用,約定管道內部公佈一組管道生命週期事件,本身綁定所需事件,使用約定管道保證正確邏輯不被打亂。
4. 邏輯上下文模式
- 關於上下文的概念,上下文就是一個範圍,對這個範圍進行一個策略的配置,只要進入該範圍的邏輯都會感知到這個上下文策略,而且配合它一塊兒完成任務,上下文策略是約束這個範圍中的邏輯行爲的一種規則。
- 邏輯上下文的做用就是將散落的代碼結構彙集在一塊兒,按照一個規則彼此協調完成一項總體工做,且代碼出了這個範圍自動釋放佔用上下文資源。例如事物處理。
5. 鈍化程序模式
- 鈍化模式即當程序執行到必定階段,中止,交由下一個業務終端繼續執行。中止時保留,持久化當前的狀態。
- 在CSharp中一般使用委託將整個業務流程串聯起來,利用委託的可序列化特性,將委託當成索引直接序列化後保存在一種媒介中(例如xml),任何中斷只要訪問到這個持久化數據就能夠進行流程重組。
6. 規則外掛模式
- 當業務規則會根據特定環境動態變化時,使用規則外掛模式快速的替換系統中任意一個業務規則,提升系統擴展性。
- 利用業務規則易變化,業務邏輯不易變化,能夠將業務規則動態注入,經過規則外掛模式將靜態的代碼(邏輯)和動態的代碼(規則)粘合在一塊兒。此模式主要用於長期運行,具備狀態的管理流程下。
7. 語句組件模式
- 語句組建模式將全部沒法變化,沒法保存的代碼進行對象化,讓它脫離棧基於對象。
- 基於鈍化模式,將基於棧語句代碼對象化爲語句組件。這些組件有很強的生命週期,每個語句組件中都保存着各自的狀態數據,能夠下次恢復時繼續執行。
- 語句組件的特色是,使執行代碼變得可控,改模式用於工做流引擎框架。
8. 面向契約模式
- 借鑑於生活中的契約/合同關係思想,提供的服務接口都遵循一個契約,這個契約會在內部自動檢查你是否知足了契約約定的條目,肯定所調用服務接口是否能成功。
- 契約條目檢查器,檢查契約使用是否正確。分爲條件檢查器驗證請求接口的條件是否知足,後置條件檢查器驗證返回的數據是否知足契約。
- 通常用於SOA架構中,使程序更爲穩定,系統邊界更爲清晰。
9. 異步消息事件驅動模式
- 將直接調用服務的方式改變爲實用消息來代替,不直接對服務調用,將調用參數發送到一個能夠存放參數的容器中,這個消息容器再經過事先註冊好的時間來通知最終處理者。
- 異步消息事件驅動模式做爲中間層框架設計模式,能夠解除調用者和被調用者的耦合,能夠動態的處理修改消息處理者,能夠實現多熱點消息傳輸。
- 用到的場景爲消息隊列的設計。
10. 總線消息路由模式
- 分發客戶端的消息調用,全部客戶端請求都請求到一個消息總線中,而後消息總線經過總線路由進行後臺服務尋址。
- 在中間層添加一個總線的概念,使客戶端沒必要關心請求繁多的服務,使多對多的模式變爲一對多的模式。
11. 元數據及元數據緩存池模式
- 所謂元數據是對數據的描述數據,它自己也是一組明肯定義的數據結構。
- 元數據做爲中間層,將在運行時才能夠決定下來的東西藉助元數據描述生成,同時放在元數據緩存池中,下次能夠直接使用生成的元數據。
- 元數據緩存池模式使用一個元數據中間層使誰變得柔性,不污染領域代碼的同時,實現特定的功能。
Demo地址:https://github.com/madeinchinalmc/Framepattern.gitgit