我在我的應用程序/程序中使用了以下模式/樣式,並且想知道這是否是我不知道的常見模式。這是一種常見的設計模式嗎?
當我必須編寫一個應用程序,它像是一個可以從不同來源獲取輸入數據的大功能的應用程序,請執行處理並創建輸出。像IPO模型(輸入過程輸出)一樣。
我有一個類/類型只代表我的狀態/數據沒有邏輯。大多數時候我將它命名爲Context,ExecutionContext或RuntimeContext。我也有多個只包含邏輯的類/類型作爲無狀態函數(在靜態類中的C#靜態方法中)。在我的應用程序入口點後,我首先創建上下文,然後將其用作我函數的參數。上下文保存應用程序的complate狀態/數據,並且所有靜態函數/方法都處理上下文。在函數鏈的最後,調用/執行完成,並且如果我需要outputdata,上下文將保持最終狀態。
我嘗試創建可視化這些方法
這些模式的優點是圖片
- 我可以簡單的測試,我的邏輯(小件的靜態函數)與 unittest
- 它不是很難使用併發代碼(只有上下文需要線程安全代碼)
- 與其他系統的依賴關係大多與上下文中的抽象(接口)分離(例如,IDbContext)。這使得更大範圍的測試變得簡單
這裏是我的問題。這是一種常見的模式嗎?如果是,它是如何被調用的?
感謝您的每一個提示! :)
問候
你可能想把它帶到軟件工程交換中。 – pvg
你能用示例代碼來支持你的圖嗎?你的圖不會像你在文本中描述的那樣顯示接口/類。 –
可能最適合的將是我可以看到的抽象工廠或責任鏈。很多東西,但在這裏探索。 https://social.msdn.microsoft.com/Forums/en-US/af062e83-3e61-45d4-aeaa-d30b4366c6a2/the-23-gang-of-four-design-patterns-cheat-sheet?forum= architecturegeneral http://www.dotnettricks.com/learn/designpatterns/gang-of-four-gof-design-patterns-in-net – Netferret